home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / mvpforth.arc / MVPFORTH.ASM < prev    next >
Assembly Source File  |  1986-04-20  |  58KB  |  4,878 lines

  1. PAGE 60,96
  2. TITLE 'MVPFORTH VERSION 1.0305.03 - 20 FEB 83'
  3. ;
  4. ;      MVPFORTH KERNEL VERSION 1.0305.03
  5. ;
  6. ;      A FORTH OPERATING SYSSTEM 
  7. ;
  8. ;      FORTH THE IBM PERSONAL COMPUTER
  9. ;
  10. ;
  11. ;        PREPARED FOR
  12. ;
  13. ;     MOUNTAIN VIEW PRESS, INC.
  14. ;           PO BOX 4656
  15. ;     MOUNTAIN VIEW, CA 94040
  16. ;
  17. ;         IMPLEMENTATION BY
  18. ;
  19. ;        HAYDON ENTERPRISES
  20. ;          BOX 429 ROUTE 2
  21. ;        LA HONDA, CA 94020
  22. ;
  23. ;
  24. ;THIS PUBLICATION IS PLACED IN THE PUBLIC 
  25. ;DOMAIN.  PERMISSION TO DISTRIBUTE IS GRANTED
  26. ;BY THE INCLUSION OF CREDIT TO MOUNTAIN VIEW
  27. ;PRESS, INC., AND HAYDON ENTERPRISES. 
  28. ;
  29. ;
  30. ;THIS IMPLEMENTATION INCLUDES THE ENTIRE 
  31. ;FORTH-79 REQUIRED WORD SET.  THE BOOK
  32. ;"ALL ABOUT FORTH"  BY GLEN B. HAYDON FULLY
  33. ;DOCUMENTS MVPFORTH. IT IS AVAILABLE FROM 
  34. ;MOUNTAIN VIEW PRESS, INC.  
  35. ;
  36. ;THE IMPLEMENTATION HAS BEEN TRANSCRIBED FROM
  37. ;THE ORIGINAL CROSS COMPILER VER. 1.0000.02 .
  38. ;IT WILL ASSEMBLE WITH "MASM.COM" UNDER MDOS
  39. ;VER. 1.0 OR 1.1 . 
  40. ;
  41. ;BECAUSE OF THE TYPE-AHEAD BUFFER OF THE IBM,
  42. ;?TERMINAL HAS A SLIGHTLY DIFFERENT FUNCTION
  43. ;FROM STANDARD MVPFORTH.  THE TRUE FLAG IS 
  44. ;THE ASCII VALUE OF THE KEY STRUCK (THE FALSE
  45. ;FLAG REMAINS 0).  BY USING  ?DUP  BEFORE 
  46. ;TESTING, THE VALUE OF THE STRUCK KEY WILL BE
  47. ;LEFT ON THE STACK.  THUS IT IS NOT NECESSARY
  48. ;TO CLEAR THE STATUS FLAG WITH THE SEQUENCE
  49. ; - KEY DROP . 
  50. ;UPDATE: ?STACK, BUFFER, COLD, LIST
  51. ;20 FEB 1983
  52. PAGE
  53. ;
  54. ;THE FORTH REGISTERS ARE ASSIGNED ACCORDING
  55. ;TO FIG-FORTH FOR THE 8086/88, VERSION 1.0,
  56. ;AS IMPLEMENTED BY THOMAS NEWMAN, 27444
  57. ;BERENDA WAY, HAYWARD, CA 94544, AND MADE
  58. ;AVAILABLE BY THE FORTH INTEREST GROUP, 
  59. ;BOX 1105, SAN CARLOS, CA 94070.
  60. ;
  61. ;FORTH REGISTERS
  62. ;
  63. ;FORTH    8088  FORTH PRESERVATION RULES
  64. ;
  65. ; IP     SI   INTERPRETER POINTER.
  66. ;          MUST BE PRESERVED 
  67. ;          ACROSS FORTH WORDS. 
  68. ;
  69. ; W     DX   WORKING REGISTER.
  70. ;          JUMP TO 'DPUSH' WILL 
  71. ;          PUSH CONTENTS ONTO THE
  72. ;          PARAMETER STACK BEFORE
  73. ;          EXECUTING 'APUSH'.
  74. ;
  75. ; SP     SP   PARAMETER STACK POINTER.
  76. ;          MUST BE PRESERVED ACROSS
  77. ;          FORTH WORDS.  THIS IS ALSO
  78. ;          THE SYSTEM STACK, WHICH 
  79. ;          IS SOMETIMES CALLED THE
  80. ;          HARDWARE STACK  -HS .
  81. ;
  82. ; RP     BP   RETURN STACK POINTER.
  83. ;          MUST BE PRESERVED ACROSS
  84. ;          FORTH WORDS. 
  85. ;
  86. ;
  87. ;IN ADDITION, THE 8088 CODE SEGMENT, DATA
  88. ;SEGMENT AND STACK SEGMENT REGISTERS ( CS,
  89. ;DS, AND SS, MUST BE PRESERVED ACROSS 
  90. ;FORTH WORDS.
  91. ;
  92. ;THE OTHER REGISTERS OF THE 8088 CPU MAY 
  93. ;BE USED FREELY. 
  94. ;
  95. ;10 AUGUST 1982
  96. PAGE
  97. ;
  98. ;    EQUATES:
  99. ;
  100. ABL    EQU    20H
  101. ACR    EQU    0DH
  102. AMINUS    EQU    2DH
  103. ADOT    EQU    2EH
  104. BELL    EQU    07H
  105. ALF    EQU    0AH
  106. FFEED    EQU    0CH
  107. ADEL    EQU    7FH
  108. ADLE    EQU    10H
  109. BSOUT    EQU    08H
  110. BSIN    EQU    08H
  111. ;
  112. ;
  113. ;
  114. BPS    EQU    80H
  115. EM    EQU    6000H
  116. HDBT    EQU    404H
  117. NBUF    EQU    02H
  118. BUF1    EQU    EM-HDBT*NBUF
  119. US    EQU    52H
  120. INITR0    EQU    BUF1-US
  121. RTS    EQU    0A0H
  122. INITSP0 EQU    INITR0-RTS
  123. ;
  124. STACK    SEGMENT        PARA STACK 
  125.     DB    200H  DUP( 0 ) 
  126. STACK    ENDS
  127. ;
  128. FSEG    SEGMENT        COMMON
  129.     ASSUME        CS:FSEG,SS:STACK,DS:FSEG,ES:FSEG
  130. PAGE
  131. ;
  132.     ORG    100H
  133. ;
  134. ORIG:    MOV    AX,CS
  135.     MOV    DS,AX
  136.     MOV    SS,AX
  137.     MOV    ES,AX
  138.     MOV    SI,TCOLD
  139.     MOV    SP,INITUSER
  140.     MOV    BP,RPP
  141.     JMP    NEXT
  142. TCOLD    DW    TCOLD1
  143. TCOLD1    DW    COLD
  144. ;
  145. ;
  146. INITFORTH    DW    RBRAC-4
  147. INITUSER    DW    INITSP0
  148. ;
  149.     DW    INITR0
  150.     DW    INITSP0
  151.     DW    01FH
  152.     DW    01H
  153. ;
  154. ;
  155. INITFENCE    DW    RBRAC-4
  156. INITDP        DW    RBRAC+0CH
  157. INITVOCLINK    DW    FORTH+6
  158. ;
  159. ;
  160.     DW    ADFIND
  161.     DW    AQTERM
  162.     DW    AABORT
  163.     DW    ABLOCK
  164.     DW    ACRA
  165.     DW    AEMIT
  166.     DW    AEXPECT
  167.     DW    AINTER
  168.     DW    AKEY
  169.     DW    ALOAD
  170.     DW    ANUM
  171.     DW    APAGE
  172.     DW    ARSLW
  173.     DW    ATSCALC
  174.     DW    AV79
  175.     DW    AWORD
  176. UP    DW    INITR0
  177. RPP    DW    INITR0
  178. ;
  179. ;
  180. ;
  181. PAGE
  182. ;
  183. ;
  184. ;
  185. DPUSH:    PUSH    DX
  186. APUSH:    PUSH    AX
  187. NEXT:    MOV    AX,[SI]
  188.     INC    SI
  189.     INC    SI
  190.     MOV    BX,AX
  191. NEXT1:    MOV    DX,BX
  192.     INC    DX
  193.     JMP    WORD PTR [BX]
  194. ;
  195. ;
  196. ;
  197. DP0    DB    81H    ;  STORE 
  198.     DB    '!'+80H
  199.     DW    0
  200. STORE    DW    $+2
  201.     POP    BX
  202.     POP    AX
  203.     MOV    [BX],AX
  204.     JMP    NEXT
  205. ;
  206.     DB    82H        ;  STOREL
  207.     DB    '!'
  208.     DB    'L'+80H
  209.     DW    STORE-4
  210. STOREL    DW    $+2
  211.     POP    BX
  212.     POP    DS
  213.     POP    AX
  214.     MOV    [BX],AX
  215.     MOV    BX,CS
  216.     MOV    DS,BX
  217.     JMP    NEXT
  218. ;
  219.     DB    81H    ;  #
  220.     DB    '#'+80H
  221.     DW    STOREL-5
  222. DIG    DW    DOCOL
  223.     DW    BASE
  224.     DW    ATT     
  225.     DW    MSMOD
  226.     DW    ROT
  227.     DW    LIT
  228.     DW    9
  229.     DW    OVER
  230.     DW    LESS
  231.     DW    ZBRAN
  232.     DW    OFFSET DIG1-$
  233.     DW    LIT
  234.     DW    7
  235.     DW    PLUS
  236. DIG1    DW    LIT
  237.     DW    30H
  238.     DW    PLUS
  239.     DW    HOLD
  240.     DW    EXIT
  241. ;
  242.     DB    82H    ;  #>
  243.     DB    '#'
  244.     DB    '>'+80H
  245.     DW    DIG-4
  246. EDIGS    DW    DOCOL
  247.     DW    DDROP
  248.     DW    HLD
  249.     DW    ATT
  250.     DW    PAD
  251.     DW    OVER
  252.     DW    SUBB
  253.     DW    EXIT
  254. ;
  255.     DB    85H    ;  #BUFF
  256.     DB    '#BUF'
  257.     DB    'F'+80H
  258.     DW    EDIGS-5
  259. NOBUF    DW    DOCON
  260.     DW    NBUF
  261. ;
  262.     DB    82H    ;  #S
  263.     DB    '#'
  264.     DB    'S'+80H
  265.     DW    NOBUF-8
  266. DIGS    DW    DOCOL
  267. DIGS1    DW    DIG
  268.     DW    DDUP
  269.     DW    ORR
  270.     DW    NOTT
  271.     DW    ZBRAN
  272.     DW    OFFSET DIGS1-$
  273.     DW    EXIT
  274. ;
  275.     DB    0C1H    ;  '
  276.     DB    0A7H
  277.     DW    DIGS-5
  278. TICK    DW    DOCOL
  279.     DW    DFIND
  280.     DW    NOTT
  281.     DW    AABORTQ
  282.     DB    09H
  283.     DB    'NOT FOUND'
  284.     DW    DROP
  285.     DW    LITER
  286.     DW    EXIT
  287. ;
  288.     DB    86H    ;  '-FIND
  289.     DB    27H,'-FIN'
  290.     DB    'D'+80H
  291.     DW    TICK-4
  292. TDFIND    DW    DOUSE
  293.     DW    16H
  294. ;
  295.     DB    8AH    ;  '?TERMINAL
  296.     DB    27H,'?TERMINA'
  297.     DB    'L'+80H
  298.     DW    TDFIND-9
  299. TQTERM    DW    DOUSE
  300.     DW    18H
  301. ;
  302.     DB    86H    ;  'ABORT
  303.     DB    27H,'ABOR'
  304.     DB    'T'+80H
  305.     DW    TQTERM-0DH
  306. TABORT    DW    DOUSE
  307.     DW    1AH
  308. ;
  309.     DB    86H    ;  'BLOCK
  310.     DB    27H,'BLOC'
  311.     DB    'K'+80H
  312.     DW    TABORT-9
  313. TBLOCK    DW    DOUSE
  314.     DW    1CH
  315. ;
  316.     DB    83H    ;  'CR
  317.     DB    27H,'C'
  318.     DB    'R'+80H
  319.     DW    TBLOCK-9
  320. TCR    DW    DOUSE
  321.     DW    1EH
  322. ;
  323.     DB    85H    ;  'EMIT
  324.     DB    27H,'EMI'
  325.     DB    'T'+80H
  326.     DW    TCR-6
  327. TEMIT    DW    DOUSE
  328.     DW    20H
  329. ;
  330.     DB    87H    ;  'EXPECT
  331.     DB    27H,'EXPEC'
  332.     DB    'T'+80H
  333.     DW    TEMIT-8
  334. TEXPECT DW    DOUSE
  335.     DW    22H
  336. ;
  337.     DB    8AH    ;  'INTERPRET
  338.     DB    27H,'INTERPRE'
  339.     DB    'T'+80H
  340.     DW    TEXPECT-0AH
  341. TINTER    DW    DOUSE
  342.     DW    24H
  343. ;
  344.     DB    84H    ;  'KEY
  345.     DB    27H,'KE'
  346.     DB    'Y'+80H
  347.     DW    TINTER-0DH
  348. TKEY    DW    DOUSE
  349.     DW    26H
  350. ;
  351.     DB    85H    ;  'LOAD
  352.     DB    27H,'LOA'
  353.     DB    'D'+80H
  354.     DW    TKEY-7
  355. TLOAD    DW    DOUSE
  356.     DW    28H
  357. ;
  358.     DB    87H    ;  'NUMBER
  359.     DB    27H,'NUMBE'
  360.     DB    'R'+80H
  361.     DW    TLOAD-8
  362. TNUM    DW    DOUSE
  363.     DW    2AH
  364. ;
  365.     DB    85H    ;  'PAGE
  366.     DB    27H,'PAG'
  367.     DB    'E'+80H
  368.     DW    TNUM-0AH
  369. TPAGE    DW    DOUSE
  370.     DW    2CH
  371. ;
  372.     DB    84H    ;  'R/W
  373.     DB    27H,'R/'
  374.     DB    'W'+80H
  375.     DW    TPAGE-8
  376. TRSLW    DW    DOUSE
  377.     DW    2EH
  378. ;
  379.     DB    87H    ;  'STREAM
  380.     DB    27H,'STREA'
  381.     DB    'M'+80H
  382.     DW    TRSLW-7
  383. TSTREAM DW    DOCOL
  384.     DW    BLK
  385.     DW    ATT
  386.     DW    QDUP
  387.     DW    ZBRAN
  388.     DW    TSTRM1-$
  389.     DW    BLOCK
  390.     DW    BRAN
  391.     DW    TSTRM2-$
  392. TSTRM1    DW    TIB
  393.     DW    ATT
  394. TSTRM2    DW    TOIN
  395.     DW    ATT
  396.     DW    PLUS
  397.     DW    EXIT
  398. ;
  399.     DB    88H    ;  'T&SCALC
  400.     DB    27H,'T&SCAL'
  401.     DB    'C'+80H
  402.     DW    TSTREAM-0AH
  403. TTSCALC DW    DOUSE
  404.     DW    30H
  405. ;
  406.     DB    8BH    ;  'VOCABULARY
  407.     DB    27H,'VOCABULAR'
  408.     DB    'Y'+80H
  409.     DW    TTSCALC-0BH
  410. TVOCAB    DW    DOUSE
  411.     DW    32H
  412. ;
  413.     DB    85H    ;  'WORD
  414.     DB    27H,'WOR'
  415.     DB    'D'+80H
  416.     DW    TVOCAB-0EH
  417. TWORD    DW    DOUSE
  418.     DW    34H
  419. ;
  420.     DB    0C1H    ;  (
  421.     DB    '('+80H
  422.     DW    TWORD-8
  423. PAREN    DW    DOCOL
  424.     DW    LIT
  425.     DW    0FFFFH
  426.     DW    TOIN
  427.     DW    PSTOR
  428.     DW    LIT
  429.     DW    29H
  430.     DW    WORDD
  431.     DW    CAT
  432.     DW    ONEP
  433.     DW    HERE
  434.     DW    PLUS
  435.     DW    CAT
  436.     DW    LIT
  437.     DW    29H
  438.     DW    EQUAL
  439.     DW    NOTT
  440.     DW    QSTREAM
  441.     DW    EXIT
  442. ;
  443.     DB    81H    ;  *
  444.     DB    '*'+80H
  445.     DW    PAREN-4
  446. STAR    DW    DOCOL
  447.     DW    USTAR
  448.     DW    DROP
  449.     DW    EXIT
  450. ;
  451.     DB    82H    ;  */
  452.     DB    '*'
  453.     DB    '/'+80H
  454.     DW    STAR-4
  455. SSLA    DW    DOCOL
  456.     DW    SSMOD
  457.     DW    SWAP
  458.     DW    DROP
  459.     DW    EXIT
  460. ;
  461.     DB    85H    ;  */MOD
  462.     DB    '*/MO'
  463.     DB    'D'+80H
  464.     DW    SSLA-5
  465. SSMOD    DW    DOCOL
  466.     DW    TOR
  467.     DW    MSTAR
  468.     DW    FROMR
  469.     DW    MSLAS
  470.     DW    EXIT
  471. ;
  472.     DB    81H    ;  +
  473.     DB    '+'+80H
  474.     DW    SSMOD-8
  475. PLUS    DW    $+2
  476.     POP    AX
  477.     POP    BX
  478.     ADD    AX,BX
  479.     JMP    APUSH
  480. ;
  481.     DB    82H    ;  +STORE
  482.     DB    '+'
  483.     DB    '!'+80H
  484.     DW    PLUS-4
  485. PSTOR    DW    $+2
  486.     POP    BX
  487.     POP    AX
  488.     ADD    [BX],AX
  489.     JMP    NEXT
  490. ;
  491.     DB    82H    ;  +-
  492.     DB    '+'
  493.     DB    '-'+80H
  494.     DW    PSTOR-5
  495. PM    DW    DOCOL
  496.     DW    ZLESS
  497.     DW    ZBRAN
  498.     DW    OFFSET PM1-$
  499.     DW    NEG
  500. PM1    DW    EXIT
  501. ;
  502.     DB    84H    ;  +BUF
  503.     DB    '+BU'
  504.     DB    'F'+80H
  505.     DW    PM-5
  506. PBUF    DW    DOCOL
  507.     DW    LIT
  508.     DW    HDBT
  509.     DW    PLUS
  510.     DW    DUPP
  511.     DW    LIMIT
  512.     DW    EQUAL
  513.     DW    ZBRAN
  514.     DW    OFFSET PBUF1-$
  515.     DW    DROP
  516.     DW    FIRST
  517. PBUF1    DW    DUPP
  518.     DW    PREV
  519.     DW    ATT
  520.     DW    SUBB
  521.     DW    EXIT
  522. ;
  523.     DB    0C5H    ;  +LOOP
  524.     DB    '+LOO'
  525.     DB    'P'+80H
  526.     DW    PBUF-7
  527. PLOOP    DW    DOCOL
  528.     DW    LIT
  529.     DW    3
  530.     DW    QPAIR
  531.     DW    COMP
  532.     DW    APLOOP
  533.     DW    HERE
  534.     DW    SUBB
  535.     DW    COMMA
  536.     DW    EXIT
  537. ;
  538.     DB    81H    ;  ,
  539.     DB    ','+80H
  540.     DW    PLOOP-8
  541. COMMA    DW    DOCOL
  542.     DW    HERE
  543.     DW    STORE
  544.     DW    TWO
  545.     DW    ALLOT
  546.     DW    EXIT
  547. ;
  548.     DB    81H    ;  -
  549.     DB    '-'+80H
  550.     DW    COMMA-4
  551. SUBB    DW    $+2
  552.     POP    DX
  553.     POP    AX
  554.     SUB    AX,DX
  555.     JMP    APUSH
  556. ;
  557.     DB    85H    ;  -FIND
  558.     DB    '-FIN'
  559.     DB    'D'+80H
  560.     DW    SUBB-4
  561. DFIND    DW    DOCOL
  562.     DW    TDFIND
  563.     DW    ATT
  564.     DW    EXEC
  565.     DW    EXIT
  566. ;
  567.     DB    89H    ;  -TRAILING
  568.     DB    '-TRAILIN'
  569.     DB    'G'+80H
  570.     DW    DFIND-8
  571. DTRAI    DW    DOCOL
  572.     DW    DUPP
  573.     DW    ZERO
  574.     DW    ADO
  575. DTRAI1    DW    DDUP
  576.     DW    PLUS
  577.     DW    ONEM
  578.     DW    CAT
  579.     DW    BLL
  580.     DW    SUBB
  581.     DW    ZBRAN
  582.     DW    OFFSET DTRAI2-$
  583.     DW    LEAVE
  584.     DW    BRAN
  585.     DW    OFFSET DTRAI3-$
  586. DTRAI2    DW    ONEM
  587. DTRAI3    DW    ALOOP
  588.     DW    OFFSET DTRAI1-$
  589.     DW    EXIT
  590. ;
  591.     DB    81H    ;  .
  592.     DB    '.'+80H
  593.     DW    DTRAI-0CH
  594. DOT    DW    DOCOL
  595.     DW    STOD
  596.     DW    DDOT
  597.     DW    EXIT
  598. ;
  599.     DB    0C2H    ;  ."
  600.     DB    '.'
  601.     DB    '"'+80H
  602.     DW    DOT-4
  603. DOTQ    DW    DOCOL
  604.     DW    TSTREAM
  605.     DW    CAT
  606.     DW    LIT
  607.     DW    22H
  608.     DW    EQUAL
  609.     DW    ZBRAN
  610.     DW    OFFSET DOTQ1-$
  611.     DW    ONE
  612.     DW    TOIN
  613.     DW    PSTOR
  614.     DW    BRAN
  615.     DW    OFFSET DOTQ2-$
  616. DOTQ1    DW    LIT
  617.     DW    22H
  618.     DW    STATE
  619.     DW    ATT
  620.     DW    ZBRAN
  621.     DW    OFFSET DOTQ3-$
  622.     DW    COMP
  623.     DW    ADOTQ
  624. DOTQ3    DW    WORDD
  625.     DW    DUPP
  626.     DW    CAT
  627.     DW    ONEP
  628.     DW    OVER
  629.     DW    PLUS
  630.     DW    CAT
  631.     DW    LIT
  632.     DW    22H
  633.     DW    EQUAL
  634.     DW    NOTT
  635.     DW    QSTREAM
  636.     DW    STATE
  637.     DW    ATT
  638.     DW    ZBRAN
  639.     DW    OFFSET DOTQ4-$
  640.     DW    CAT
  641.     DW    ONEP
  642.     DW    ALLOT
  643.     DW    BRAN
  644.     DW    OFFSET DOTQ2-$
  645. DOTQ4    DW    COUNT
  646.     DW    TYPEE
  647. DOTQ2    DW    EXIT
  648. ;
  649.     DB    85H    ;  .LINE
  650.     DB    '.LIN'
  651.     DB    'E'+80H
  652.     DW    DOTQ-5
  653. DLINE    DW    DOCOL
  654.     DW    ALINE
  655.     DW    DTRAI
  656.     DW    TYPEE
  657.     DW    EXIT
  658. ;
  659.     DB    82H    ;  .R
  660.     DB    '.'
  661.     DB    'R'+80H
  662.     DW    DLINE-8
  663. DOTR    DW    DOCOL
  664.     DW    TOR
  665.     DW    STOD
  666.     DW    FROMR
  667.     DW    DDOTR
  668.     DW    EXIT
  669. ;
  670.     DB    81H    ;  /
  671.     DB    '/'+80H
  672.     DW    DOTR-5
  673. SLASH    DW    DOCOL
  674.     DW    SLMOD
  675.     DW    SWAP
  676.     DW    DROP
  677.     DW    EXIT
  678. ;
  679.     DB    0C5H    ;  /LOOP
  680.     DB    '/LOO'
  681.     DB    'P'+80H
  682.     DW    SLASH-4
  683. UPLOOP    DW    DOCOL
  684.     DW    LIT
  685.     DW    3
  686.     DW    QPAIR
  687.     DW    COMP
  688.     DW    AUPLOOP
  689.     DW    HERE
  690.     DW    SUBB
  691.     DW    COMMA
  692.     DW    EXIT
  693. ;
  694.     DB    84H    ;  /MOD
  695.     DB    '/MO'
  696.     DB    'D'+80H
  697.     DW    UPLOOP-8
  698. SLMOD    DW    DOCOL
  699.     DW    TOR
  700.     DW    STOD
  701.     DW    FROMR
  702.     DW    MSLAS
  703.     DW    EXIT
  704. ;
  705.     DB    81H    ;  0
  706.     DB    '0'+80H
  707.     DW    SLMOD-7
  708. ZERO    DW    DOCON
  709.     DW    00
  710. ;
  711.     DB    82H    ;  0<
  712.     DB    '0'
  713.     DB    '<'+80H
  714.     DW    ZERO-4
  715. ZLESS    DW    $+2
  716.     POP    AX
  717.     OR    AX,AX
  718.     MOV    AX,1
  719.     JS    ZLES1
  720.     DEC    AX
  721. ZLES1:    JMP    APUSH
  722. ;
  723.     DB    82H    ;  0=
  724.     DB    '0'
  725.     DB    '='+80H
  726.     DW    ZLESS-5
  727. ZEQU    DW    DOCOL
  728.     DW    NOTT
  729.     DW    EXIT
  730. ;
  731.     DB    82H    ;  0>
  732.     DB    '0'
  733.     DB    '>'+80H
  734.     DW    ZEQU-5
  735. ZGREAT    DW    DOCOL
  736.     DW    ZERO
  737.     DW    GREAT
  738.     DW    EXIT
  739. ;
  740.     DB    87H    ;  0BRANCH
  741.     DB    '0BRANC'
  742.     DB    'H'+80H
  743.     DW    ZGREAT-5
  744. ZBRAN    DW    $+2
  745.     POP    AX
  746.     OR    AX,AX
  747.     JZ    ZBRAN1
  748.     INC    SI
  749.     INC    SI
  750.     JMP    NEXT
  751. ZBRAN1: JMP    BRAN1
  752. ;
  753.     DB    81H    ;  1
  754.     DB    '1'+80H
  755.     DW    ZBRAN-0AH
  756. ONE    DW    DOCON
  757.     DW    01
  758. ;
  759.     DB    82H    ;  1+
  760.     DB    '1'
  761.     DB    '+'+80H 
  762.     DW    ONE-4
  763. ONEP    DW    $+2
  764.     POP    AX
  765.     INC    AX
  766.     JMP    APUSH
  767. ;
  768.     DB    82H    ;  1-
  769.     DB    '1'
  770.     DB    '-'+80H
  771.     DW    ONEP-5
  772. ONEM    DW    $+2
  773.     POP    AX
  774.     DEC    AX
  775.     JMP    APUSH
  776. ;
  777.     DB    81H    ;  2
  778.     DB    '2'+80H
  779.     DW    ONEM-5
  780. TWO    DW    DOCON
  781.     DW    02
  782. ;
  783.     DB    82H    ;  2*
  784.     DB    '2'
  785.     DB    '*'+80H
  786.     DW    TWO-4
  787. TWOST    DW    $+2
  788.     POP    AX
  789.     ADD    AX,AX
  790.     JMP    APUSH
  791. ;
  792.     DB    82H    ;    2+
  793.     DB    '2'
  794.     DB    '+'+80H
  795.     DW    TWOST-5
  796. TWOP    DW    $+2
  797.     POP    AX
  798.     INC    AX
  799.     INC    AX
  800.     JMP    APUSH
  801. ;
  802.     DB    82H    ;  2-
  803.     DB    '2'
  804.     DB    '-'+80H
  805.     DW    TWOP-5
  806. TWOM    DW    $+2
  807.     POP    AX
  808.     DEC    AX
  809.     DEC    AX
  810.     JMP    APUSH
  811. ;
  812.     DB    82H    ;  2/
  813.     DB    '2'
  814.     DB    '/'+80H
  815.     DW    TWOM-5
  816. TWOSL    DW    DOCOL
  817.     DW    TWO
  818.     DW    SLASH
  819.     DW    EXIT
  820. ;
  821.     DB    8BH    ;  79-STANDARD
  822.     DB    '79-STANDAR'
  823.     DB    'D'+80H
  824.     DW    TWOSL-5
  825. STAND    DW    DOCOL
  826.     DW    EXIT
  827. ;
  828.     DB    81H    ;  :
  829.     DB    ':'+80H
  830.     DW    STAND-0EH
  831. COLON    DW    DOCOL
  832.     DW    SPAT
  833.     DW    CSP
  834.     DW    STORE
  835.     DW    CURR
  836.     DW    ATT
  837.     DW    CONT
  838.     DW    STORE
  839.     DW    CREATE
  840.     DW    SMUDG
  841.     DW    RBRAC
  842.     DW    ASCODE
  843. DOCOL:    INC    DX
  844.     DEC    BP
  845.     DEC    BP
  846.     MOV    [BP],SI
  847.     MOV    SI,DX
  848.     JMP    NEXT
  849. ;
  850.     DB    0C1H    ;  ;
  851.     DB    ';'+80H
  852.     DW    COLON-4
  853. SEMI    DW    DOCOL
  854.     DW    QCSP
  855.     DW    COMP
  856.     DW    EXIT
  857.     DW    SMUDG
  858.     DW    LBRAC
  859.     DW    EXIT
  860. ;
  861.     DB    81H    ;  <
  862.     DB    '<'+80H
  863.     DW    SEMI-4
  864. LESS    DW    $+2
  865.     POP    DX
  866.     POP    AX
  867.     MOV    BX,DX
  868.     XOR    BX,AX
  869.     JS    LES1
  870.     SUB    AX,DX
  871. LES1:    OR    AX,AX
  872.     MOV    AX,0
  873.     JNS    LES2
  874.     INC    AX
  875. LES2:    JMP    APUSH
  876. ;
  877.     DB    82H    ;  <#
  878.     DB    '<'
  879.     DB    '#'+80H
  880.     DW    LESS-4
  881. BDIGS    DW    DOCOL
  882.     DW    PAD
  883.     DW    HLD
  884.     DW    STORE
  885.     DW    EXIT
  886. ;
  887.     DB    87H    ;  <+LOOP>
  888.     DB    '<+LOOP'
  889.     DB    '>'+80H
  890.     DW    BDIGS-5
  891. APLOOP    DW    $+2
  892.     POP    BX
  893.     JMP    ALOOP1
  894. ;
  895.     DB    87H    ;  <-FIND>
  896.     DB    '<-FIND'
  897.     DB    '>'+80H
  898.     DW    APLOOP-0AH
  899. ADFIND    DW    DOCOL
  900.     DW    BLL
  901.     DW    WORDD
  902.     DW    CONT
  903.     DW    ATT
  904.     DW    ATT
  905.     DW    AFIND
  906.     DW    EXIT
  907. ;
  908.     DB    84H    ;  <.">
  909.     DB    '<."'
  910.     DB    '>'+80H
  911.     DW    ADFIND-0AH
  912. ADOTQ    DW    DOCOL
  913.     DW    RAT
  914.     DW    COUNT
  915.     DW    DUPP
  916.     DW    ONEP
  917.     DW    FROMR
  918.     DW    PLUS
  919.     DW    TOR
  920.     DW    TYPEE
  921.     DW    EXIT
  922. ;
  923.     DB    87H    ;  </LOOP>
  924.     DB    '</LOOP'
  925.     DB    '>'+80H
  926.     DW    ADOTQ-7
  927. AUPLOOP DW    $+2
  928.     POP    BX
  929.     ADD    [BP],BX
  930.     JB    AUPLO1
  931.     MOV    AX,[BP]
  932.     SUB    AX,2[BP]
  933.     JNB    AUPLO1
  934.     JMP    BRAN1
  935. AUPLO1: ADD    BP,4H
  936.     INC    SI
  937.     INC    SI
  938.     JMP    NEXT
  939. ;
  940.     DB    87H    ;  <;CODE>
  941.     DB    '<;CODE'
  942.     DB    '>'+80H
  943.     DW    AUPLOOP-0AH
  944. ASCODE    DW    DOCOL
  945.     DW    FROMR
  946.     DW    LATES
  947.     DW    PFA
  948.     DW    CFA
  949.     DW    STORE
  950.     DW    EXIT
  951. ;
  952.     DB    88H    ;  <<CMOVE>
  953.     DB    '<<CMOVE'
  954.     DB    '>'+80H
  955.     DW    ASCODE-0AH
  956. ADCMOVE DW    $+2
  957.     MOV     BX,SI
  958.     POP    CX
  959.     POP    DI
  960.     ADD    DI,CX
  961.     DEC    DI
  962.     POP    SI
  963.     ADD    SI,CX
  964.     DEC    SI
  965.     STD
  966. REP    MOVSB
  967.     CLD
  968.     MOV    SI,BX
  969.     JMP    NEXT
  970. ;
  971.     DB    8BH        ;  <?TERMINAL>     ( ---    C , F )
  972.     DB    '<?TERMINAL'
  973.     DB    '>'+80H
  974.     DW    ADCMOVE-0BH
  975. AQTERM    DW    $+2
  976.     PUSH    DS
  977.     PUSH    BX
  978.     MOV    BX,40H
  979.     MOV    DS,BX
  980.     MOV    BX,1AH
  981.     MOV    CX,[BX]
  982.     MOV    AX,CX
  983.     MOV    BX,1CH
  984.     SUB    AX,[BX]
  985.     MOV    [BX],CX
  986.     JZ    AQTER1
  987.     MOV    AX,[BX]
  988.     MOV    BX,AX
  989.     MOV    AX,[BX]
  990.     SUB    AH,AH
  991. AQTER1: POP    BX
  992.     POP    DS
  993.     JMP    APUSH
  994. ;
  995.     DB    88H    ;  <ABORT">
  996.     DB    '<ABORT"'
  997.     DB    '>'+80H
  998.     DW    AQTERM-0EH
  999. AABORTQ DW    DOCOL
  1000.     DW    ZBRAN
  1001.     DW    AABTQ1-$
  1002.     DW    WHERE
  1003.     DW    CR
  1004.     DW    RAT
  1005.     DW    COUNT
  1006.     DW    TYPEE
  1007.     DW    SPSTO
  1008.     DW    QUIT
  1009.     DW    BRAN
  1010.     DW    AABTQ2-$
  1011. AABTQ1    DW    FROMR
  1012.     DW    DUPP
  1013.     DW    CAT
  1014.     DW    PLUS
  1015.     DW    ONEP
  1016.     DW    TOR
  1017. AABTQ2    DW    EXIT
  1018. ;
  1019.     DB    87H    ;  <ABORT>
  1020.     DB    '<ABORT'
  1021.     DB    '>'+80H
  1022.     DW    AABORTQ-0BH
  1023. AABORT    DW    DOCOL
  1024.     DW    SPSTO
  1025.     DW    QSTAC
  1026.     DW    FORTH
  1027.     DW    DEFIN
  1028.     DW    QUIT
  1029.     DW    EXIT
  1030. ;
  1031.     DB    87H    ;  <BLOCK>
  1032.     DB    '<BLOCK'
  1033.     DB    '>'+80H
  1034.     DW    AABORT-0AH
  1035. ABLOCK    DW    DOCOL
  1036.     DW    OFSET
  1037.     DW    ATT
  1038.     DW    PLUS
  1039.     DW    TOR
  1040.     DW    PREV
  1041.     DW    ATT
  1042.     DW    DUPP
  1043.     DW    ATT
  1044.     DW    RAT
  1045.     DW    SUBB
  1046.     DW    TWOST
  1047.     DW    ZBRAN
  1048.     DW    OFFSET ABLOCK3-$
  1049. ABLOCK1 DW    PBUF
  1050.     DW    NOTT
  1051.     DW    ZBRAN
  1052.     DW    OFFSET ABLOCK2-$
  1053.     DW    DROP
  1054.     DW    RAT
  1055.     DW    BUFFE
  1056.     DW    DUPP
  1057.     DW    RAT
  1058.     DW    ONE
  1059.     DW    RSLW
  1060.     DW    TWOM
  1061. ABLOCK2 DW    DUPP
  1062.     DW    ATT
  1063.     DW    RAT
  1064.     DW    SUBB
  1065.     DW    TWOST
  1066.     DW    NOTT
  1067.     DW    ZBRAN
  1068.     DW    OFFSET ABLOCK1-$
  1069.     DW    DUPP
  1070.     DW    PREV
  1071.     DW    STORE
  1072. ABLOCK3 DW    FROMR
  1073.     DW    DROP
  1074.     DW    TWOP
  1075.     DW    EXIT
  1076. ;
  1077.     DB    86H    ;  <CMOVE
  1078.     DB    '<CMOV'
  1079.     DB    'E'+80H
  1080.     DW    ABLOCK-0AH
  1081. DCMOVE    DW    DOCOL
  1082.     DW    DUPP
  1083.     DW    ONE
  1084.     DW    LESS
  1085.     DW    ZBRAN
  1086.     DW    DCMOVE1-$
  1087.     DW    DDROP
  1088.     DW    DROP
  1089.     DW    BRAN
  1090.     DW    DCMOVE2-$
  1091. DCMOVE1 DW    ADCMOVE
  1092. DCMOVE2 DW    EXIT
  1093. ;
  1094.     DB    87H    ;  <CMOVE>
  1095.     DB    '<CMOVE'
  1096.     DB    '>'+80H
  1097.     DW    DCMOVE-09
  1098. ACMOVE    DW    $+2
  1099.     CLD
  1100.     MOV    BX,SI
  1101.     POP    CX
  1102.     POP    DI
  1103.     POP    SI
  1104.     MOV    AX,DS
  1105.     MOV    ES,AX
  1106. REP    MOVSB
  1107.     MOV    SI,BX
  1108.     JMP    NEXT
  1109. ;
  1110.     DB    84H    ;  <CR>
  1111.     DB    '<CR'
  1112.     DB    '>'+80H
  1113.     DW    ACMOVE-0AH
  1114. ACRA    DW    DOCOL
  1115.     DW    LIT
  1116.     DW    0DH
  1117.     DW    EMIT
  1118.     DW    LIT
  1119.     DW    0AH
  1120.     DW    EMIT
  1121.     DW    ZERO
  1122.     DW    OUTT
  1123.     DW    STORE
  1124.     DW    EXIT
  1125. ;
  1126.     DB    84H    ;  <DO>
  1127.     DB    '<DO'
  1128.     DB    '>'+80H
  1129.     DW    ACRA-7
  1130. ADO    DW    $+2
  1131.     POP    DX
  1132.     POP    AX
  1133.     XCHG    BP,SP
  1134.     PUSH    AX
  1135.     PUSH    DX
  1136.     XCHG    BP,SP
  1137.     JMP    NEXT
  1138. ;
  1139.     DB    86H    ;  <EMIT>
  1140.     DB    '<EMIT'
  1141.     DB    '>'+80H
  1142.     DW    ADO-7
  1143. AEMIT    DW    DOCOL
  1144.     DW    EPRINT
  1145.     DW    ATT
  1146.     DW    ZBRAN
  1147.     DW    OFFSET AEMIT1-$
  1148.     DW    DUPP
  1149.     DW    ZERO
  1150.     DW    ZERO
  1151.     DW    ZERO
  1152.     DW    LIT
  1153.     DW    17H
  1154.     DW    INTCAL
  1155.     DW    DROP
  1156. AEMIT1    DW    LIT
  1157.     DW    0E00H
  1158.     DW    PLUS
  1159.     DW    LIT
  1160.     DW    07H
  1161.     DW    ZERO
  1162.     DW    ZERO
  1163.     DW    LIT
  1164.     DW    10H
  1165.     DW    INTCAL
  1166.     DW    DROP
  1167.     DW    ONE
  1168.     DW    OUTT
  1169.     DW    PSTOR
  1170.     DW    EXIT
  1171. ;
  1172.     DB    88H    ;  <EXPECT>
  1173.     DB    '<EXPECT'
  1174.     DB    '>'+80H
  1175.     DW    AEMIT-9
  1176. AEXPECT DW    DOCOL
  1177.     DW    OVER
  1178.     DW    PLUS
  1179.     DW    OVER
  1180.     DW    ADO
  1181. AEXPEC1 DW    KEY
  1182.     DW    DUPP
  1183.     DW    LIT
  1184.     DW    8
  1185.     DW    EQUAL
  1186.     DW    OVER
  1187.     DW    LIT
  1188.     DW    7FH
  1189.     DW    EQUAL
  1190.     DW    ORR
  1191.     DW    ZBRAN
  1192.     DW    OFFSET AEXPEC4-$
  1193.     DW    DROP
  1194.     DW    DUPP
  1195.     DW    IDO
  1196.     DW    EQUAL
  1197.     DW    DUPP
  1198.     DW    FROMR
  1199.     DW    TWOM
  1200.     DW    PLUS
  1201.     DW    TOR
  1202.     DW    ZBRAN
  1203.     DW    OFFSET AEXPEC2-$
  1204.     DW    LIT
  1205.     DW    7
  1206.     DW    BRAN
  1207.     DW    OFFSET AEXPEC3-$
  1208. AEXPEC2 DW    LIT
  1209.     DW    8
  1210.     DW    DUPP
  1211.     DW    EMIT
  1212.     DW    LIT
  1213.     DW    20H
  1214.     DW    EMIT
  1215.     DW    LIT
  1216.     DW    0FFFDH
  1217.     DW    OUTT
  1218.     DW    PSTOR
  1219. AEXPEC3 DW    BRAN
  1220.     DW    OFFSET AEXPEC7-$
  1221. AEXPEC4 DW    DUPP
  1222.     DW    LIT
  1223.     DW    0DH
  1224.     DW    EQUAL
  1225.     DW    ZBRAN
  1226.     DW    OFFSET AEXPEC5-$
  1227.     DW    LEAVE
  1228.     DW    DROP
  1229.     DW    BLL
  1230.     DW    ZERO
  1231.     DW    BRAN
  1232.     DW    OFFSET AEXPEC6-$
  1233. AEXPEC5 DW    DUPP
  1234. AEXPEC6 DW    IDO
  1235.     DW    CSTOR
  1236.     DW    ZERO
  1237.     DW    IDO
  1238.     DW    ONEP
  1239.     DW    STORE
  1240. AEXPEC7 DW    EMIT
  1241.     DW    ONE
  1242.     DW    AUPLOOP
  1243.     DW    OFFSET AEXPEC1-$
  1244.     DW    DROP
  1245.     DW    EXIT
  1246. ;
  1247.     DB    86H    ;  <FILL>
  1248.     DB    '<FILL'
  1249.     DB    '>'+80H
  1250.     DW    AEXPECT-0BH
  1251. AFILL    DW    $+2
  1252.     POP    AX
  1253.     POP    CX
  1254.     POP    DI
  1255.     MOV    BX,DS
  1256.     MOV    ES,BX
  1257.     CLD
  1258.     REP    STOSB
  1259.     JMP    NEXT
  1260. ;
  1261.     DB    86H    ;  <FIND>
  1262.     DB    '<FIND'
  1263.     DB    '>'+80H
  1264.     DW    AFILL-9
  1265. AFIND    DW    $+2
  1266.     MOV    AX,DS
  1267.     MOV    ES,AX
  1268.     POP    BX
  1269.     POP    CX
  1270. AFIND1: MOV    DI,CX
  1271.     MOV    AL,[BX]
  1272.     MOV    DL,AL
  1273.     XOR    AL,[DI]
  1274.     AND    AL,3FH
  1275.     JNZ    AFIND3
  1276. AFIND2: INC    BX
  1277.     INC    DI
  1278.     MOV    AL,[BX]
  1279.     XOR    AL,[DI]
  1280.     ADD    AL,AL
  1281.     JNZ    AFIND3
  1282.     JNB    AFIND2
  1283.     ADD    BX,5
  1284.     PUSH    BX
  1285.     MOV    AX,1
  1286.     SUB    DH,DH
  1287.     JMP    DPUSH
  1288. AFIND3: INC    BX
  1289.     JB    AFIND4
  1290.     MOV    AL,[BX]
  1291.     ADD    AL,AL
  1292.     JMP    AFIND3
  1293. AFIND4: MOV    BX,[BX]
  1294.     OR    BX,BX
  1295.     JNZ    AFIND1
  1296.     MOV    AX,0
  1297.     JMP    APUSH
  1298. ;
  1299.     DB    8BH    ;  <INTERPRET>
  1300.     DB    '<INTERPRET'
  1301.     DB    '>'+80H
  1302.     DW    AFIND-9
  1303. AINTER    DW    DOCOL
  1304. AINTER1 DW    DFIND
  1305.     DW    ZBRAN
  1306.     DW    OFFSET AINTER4-$
  1307.     DW    STATE
  1308.     DW    ATT
  1309.     DW    LESS
  1310.     DW    ZBRAN
  1311.     DW    OFFSET AINTER2-$
  1312.     DW    CFA
  1313.     DW    COMMA
  1314.     DW    BRAN
  1315.     DW    OFFSET AINTER3-$
  1316. AINTER2 DW    CFA
  1317.     DW    EXEC
  1318. AINTER3 DW    BRAN
  1319.     DW    OFFSET AINTER6-$
  1320. AINTER4 DW    HERE
  1321.     DW    NUM
  1322.     DW    DPL
  1323.     DW    ATT
  1324.     DW    ONEP
  1325.     DW    ZBRAN
  1326.     DW    OFFSET AINTER5-$
  1327.     DW    DLITE
  1328.     DW    BRAN
  1329.     DW    OFFSET AINTER6-$
  1330. AINTER5 DW    DROP
  1331.     DW    LITER
  1332. AINTER6 DW    QSTAC
  1333.     DW    BRAN
  1334.     DW    OFFSET AINTER1-$
  1335.     DW    EXIT
  1336. ;
  1337.     DB    85H    ;  <KEY>
  1338.     DB    '<KEY'
  1339.     DB    '>'+80H
  1340.     DW    AINTER-0EH
  1341. AKEY    DW    DOCOL
  1342. AKEY1    DW    ZERO
  1343.     DW    ZERO
  1344.     DW    ZERO
  1345.     DW    ZERO
  1346.     DW    LIT
  1347.     DW    16H
  1348.     DW    INTCAL
  1349.     DW    LIT
  1350.     DW    0FFH
  1351.     DW    ANDD
  1352.     DW    DUPP
  1353.     DW    LIT
  1354.     DW    10H
  1355.     DW    SUBB
  1356.     DW    NOTT
  1357.     DW    ZBRAN
  1358.     DW    OFFSET AKEY2-$
  1359.     DW    DROP
  1360.     DW    ONE
  1361.     DW    EPRINT
  1362.     DW    ATT
  1363.     DW    XORR
  1364.     DW    EPRINT
  1365.     DW    STORE
  1366.     DW    BRAN
  1367.     DW    OFFSET AKEY1-$
  1368. AKEY2    DW    EXIT
  1369. ;
  1370.     DB    86H    ;  <LINE>
  1371.     DB    '<LINE'
  1372.     DB    '>'+80H
  1373.     DW    AKEY-8
  1374. ALINE    DW    DOCOL
  1375.     DW    BLOCK
  1376.     DW    SWAP
  1377.     DW    CSLL
  1378.     DW    STAR
  1379.     DW    PLUS
  1380.     DW    CSLL
  1381.     DW    EXIT
  1382. ;
  1383.     DB    86H    ;  <LOAD>
  1384.     DB    '<LOAD'
  1385.     DB    '>'+80H
  1386.     DW    ALINE-9
  1387. ALOAD    DW    DOCOL
  1388.     DW    QDUP
  1389.     DW    NOTT
  1390.     DW    AABORTQ
  1391.     DB    0AH
  1392.     DB    'UNLOADABLE'
  1393.     DW    BLK
  1394.     DW    ATT
  1395.     DW    TOR
  1396.     DW    TOIN
  1397.     DW    ATT
  1398.     DW    TOR
  1399.     DW    ZERO
  1400.     DW    TOIN
  1401.     DW    STORE
  1402.     DW    BLK
  1403.     DW    STORE
  1404.     DW    INTER
  1405.     DW    FROMR
  1406.     DW    TOIN
  1407.     DW    STORE
  1408.     DW    FROMR
  1409.     DW    BLK
  1410.     DW    STORE
  1411.     DW    EXIT
  1412. ;
  1413.     DB    86H    ;  <LOOP>
  1414.     DB    '<LOOP'
  1415.     DB    '>'+80H
  1416.     DW    ALOAD-9
  1417. ALOOP    DW    $+2
  1418.     MOV    BX,1H
  1419. ALOOP1: MOV    CX,[BP]
  1420.     ADD    [BP],BX
  1421.     JS    ALOOP2
  1422.     MOV    AX,CX
  1423.     AND    AX,BX
  1424.     JNS    ALOOP3
  1425. ALOOP2: MOV    AX,CX
  1426.     OR    AX,BX
  1427.     JNS    ALOOP8
  1428. ALOOP3: MOV    AX,[BP]
  1429.     SUB    AX,2[BP]
  1430.     JS    ALOOP7
  1431.     MOV    AX,[BP]
  1432.     AND    AX,AX
  1433.     JS    ALOOP5
  1434. ALOOP4: MOV    AX,BX
  1435.     AND    AX,AX
  1436.     JNS    ALOOP8
  1437.     JMP    BRAN1
  1438. ALOOP5: MOV    AX,2[BP]
  1439.     AND    AX,AX
  1440.     JS    ALOOP4
  1441. ALOOP6: MOV    AX,BX
  1442.     AND    AX,AX
  1443.     JS    ALOOP8
  1444.     JMP    BRAN1
  1445. ALOOP7: MOV    AX,[BP]
  1446.     AND    AX,AX
  1447.     JS    ALOOP6
  1448.     JMP    ALOOP5
  1449. ALOOP8: ADD    BP,4H
  1450.     INC    SI
  1451.     INC    SI
  1452.     JMP    NEXT
  1453. ;
  1454.     DB    88H    ;  <NUMBER>
  1455.     DB    '<NUMBER'
  1456.     DB    '>'+80H
  1457.     DW    ALOOP-9
  1458. ANUM    DW    DOCOL
  1459.     DW    ZERO
  1460.     DW    ZERO
  1461.     DW    ROT
  1462.     DW    DUPP
  1463.     DW    ONEP
  1464.     DW    CAT
  1465.     DW    LIT
  1466.     DW    2DH
  1467.     DW    EQUAL
  1468.     DW    DUPP
  1469.     DW    TOR
  1470.     DW    PLUS
  1471.     DW    LIT
  1472.     DW    0FFFFH
  1473.     DW    DPL
  1474.     DW    STORE
  1475.     DW    CONV
  1476.     DW    DUPP
  1477.     DW    CAT
  1478.     DW    BLL
  1479.     DW    GREAT
  1480.     DW    ZBRAN
  1481.     DW    OFFSET ANUM1-$
  1482.     DW    DUPP
  1483.     DW    CAT
  1484.     DW    LIT
  1485.     DW    2EH
  1486.     DW    EQUAL
  1487.     DW    NOTT
  1488.     DW    AABORTQ
  1489.     DB    0EH
  1490.     DB    'NOT RECOGNIZED'
  1491.     DW    ZERO
  1492.     DW    DPL
  1493.     DW    STORE
  1494.     DW    CONV
  1495.     DW    DUPP
  1496.     DW    CAT
  1497.     DW    BLL
  1498.     DW    GREAT
  1499.     DW    AABORTQ
  1500.     DB    0EH
  1501.     DB    'NOT RECOGNIZED'
  1502. ANUM1    DW    DROP
  1503.     DW    FROMR
  1504.     DW    ZBRAN
  1505.     DW    OFFSET ANUM2-$
  1506.     DW    DNEG
  1507. ANUM2    DW    EXIT
  1508. ;
  1509.     DB    86H    ;  <PAGE>
  1510.     DB    '<PAGE'
  1511.     DB    '>'+80H
  1512.     DW    ANUM-0BH
  1513. APAGE    DW    DOCOL
  1514.     DW    ZERO
  1515.     DW    ZERO
  1516.     DW    ZERO
  1517.     DW    ZERO
  1518.     DW    LIT
  1519.     DW    10H
  1520.     DW    INTCAL
  1521.     DW    DROP
  1522.     DW    EXIT
  1523. ;
  1524.     DB    85H    ;  <R/W>
  1525.     DB    '<R/W'
  1526.     DB    '>'+80H
  1527.     DW    APAGE-9
  1528. ARSLW    DW    DOCOL
  1529.     DW    USEE
  1530.     DW    ATT
  1531.     DW    TOR
  1532.     DW    ROT
  1533.     DW    USEE
  1534.     DW    STORE
  1535.     DW    SWAP
  1536.     DW    MAXDRV
  1537.     DW    ZERO
  1538.     DW    ADO
  1539. ARSLW1    DW    IDO
  1540.     DW    DRDEN
  1541.     DW    DENSTY
  1542.     DW    STORE
  1543.     DW    DUPP
  1544.     DW    BPDRV
  1545.     DW    SUBB
  1546.     DW    LIT
  1547.     DW    0FFFFH
  1548.     DW    GREAT
  1549.     DW    ZBRAN
  1550.     DW    ARSLW3-$
  1551.     DW    BPDRV
  1552.     DW    SUBB
  1553.     DW    IDO
  1554.     DW    ONEP
  1555.     DW    MAXDRV
  1556.     DW    EQUAL
  1557.     DW    ZBRAN
  1558.     DW    ARSLW2-$
  1559.     DW    FROMR
  1560.     DW    FROMR
  1561.     DW    DDROP
  1562.     DW    FROMR
  1563.     DW    USEE
  1564.     DW    STORE
  1565.     DW    ONE
  1566.     DW    AABORTQ
  1567.     DB    12H
  1568.     DB    'BLOCK OUT OF RANGE'
  1569. ARSLW2    DW    BRAN
  1570.     DW    ARSLW4-$
  1571. ARSLW3    DW    IDO
  1572.     DW    DRIVE
  1573.     DW    STORE
  1574.     DW    LEAVE
  1575. ARSLW4    DW    ALOOP
  1576.     DW    ARSLW1-$
  1577.     DW    SPBLK
  1578.     DW    STAR
  1579.     DW    SPBLK
  1580.     DW    ZERO
  1581.     DW    ADO
  1582. ARSLW5    DW    DDUP
  1583.     DW    TSCALC
  1584.     DW    ZBRAN
  1585.     DW    ARSLW6-$
  1586.     DW    SECRD
  1587.     DW    BRAN
  1588.     DW    ARSLW7-$
  1589. ARSLW6    DW    SECWT
  1590. ARSLW7    DW    ONEP
  1591.     DW    LIT
  1592.     DW    404H
  1593.     DW    LIT
  1594.     DW    4
  1595.     DW    SUBB
  1596.     DW    SPBLK
  1597.     DW    SLASH
  1598.     DW    USEE
  1599.     DW    PSTOR
  1600.     DW    ALOOP
  1601.     DW    ARSLW5-$
  1602.     DW    DDROP
  1603.     DW    FROMR
  1604.     DW    USEE
  1605.     DW    STORE
  1606.     DW    EXIT
  1607. ;
  1608.     DB    89H    ;  <T&SCALC>
  1609.     DB    '<T&SCALC'
  1610.     DB    '>'+80H
  1611.     DW    ARSLW-8
  1612. ATSCALC DW    DOCOL
  1613.     DW    SPT
  1614.     DW    SLMOD
  1615.     DW    TRACK
  1616.     DW    STORE
  1617.     DW    DEN
  1618.     DW    DRIVE
  1619.     DW    ATT
  1620.     DW    TWOST
  1621.     DW    PLUS
  1622.     DW    ATT
  1623.     DW    ONE
  1624.     DW    EQUAL
  1625.     DW    ZBRAN
  1626.     DW    ATSCAL2-$
  1627.     DW    LIT
  1628.     DW    08H
  1629.     DW    SLMOD
  1630.     DW    DRIVE
  1631.     DW    ATT
  1632.     DW    LIT
  1633.     DW    0FH
  1634.     DW    ANDD
  1635.     DW    SWAP
  1636.     DW    ZBRAN
  1637.     DW    ATSCAL1-$
  1638.     DW    LIT
  1639.     DW    100H
  1640.     DW    PLUS
  1641. ATSCAL1    DW    DRIVE
  1642.     DW    STORE
  1643. ATSCAL2 DW    ONEP
  1644.     DW    SEC
  1645.     DW    STORE
  1646.     DW    EXIT
  1647. ;
  1648.     DB    8EH    ;  <VOCABULARY79>
  1649.     DB    '<VOCABULARY79'
  1650.     DB    '>'+80H
  1651.     DW    ATSCALC-0CH
  1652. AV79    DW    DOCOL
  1653.     DW    CREATE
  1654.     DW    LIT
  1655.     DW    0A081H
  1656.     DW    COMMA
  1657.     DW    LIT
  1658.     DW    FORTH+2
  1659.     DW    COMMA
  1660.     DW    HERE
  1661.     DW    VOCL
  1662.     DW    ATT
  1663.     DW    COMMA
  1664.     DW    VOCL
  1665.     DW    STORE
  1666.     DW    ASCODE
  1667. DOVOC    DB    0E8H
  1668.     DW    DODOES-$-2
  1669.     DW    TWOP
  1670.     DW    CONT
  1671.     DW    STORE
  1672.     DW    EXIT
  1673. ;
  1674.     DB    8FH    ;  <VOCABULARYFIG>
  1675.     DB    '<VOCABULARYFIG'
  1676.     DB    '>'+80H
  1677.     DW    AV79-11H
  1678. AVFIG    DW    DOCOL
  1679.     DW    CREATE
  1680.     DW    LIT
  1681.     DW    0A081H
  1682.     DW    COMMA
  1683.     DW    CURR
  1684.     DW    ATT
  1685.     DW    CFA
  1686.     DW    COMMA
  1687.     DW    HERE
  1688.     DW    VOCL
  1689.     DW    ATT
  1690.     DW    COMMA
  1691.     DW    VOCL
  1692.     DW    STORE
  1693.     DW    ASCODE
  1694.     DB    0E8H
  1695.     DW    DODOES-$-2
  1696.     DW    TWOP
  1697.     DW    CONT
  1698.     DW    STORE
  1699.     DW    EXIT
  1700. ;
  1701.     DB    86H    ;  <WORD>
  1702.     DB    '<WORD'
  1703.     DB    '>'+80H
  1704.     DW    AVFIG-12H
  1705. AWORD    DW    DOCOL
  1706.     DW    TSTREAM
  1707.     DW    SWAP
  1708.     DW    ENCL
  1709.     DW    DDUP
  1710.     DW    GREAT
  1711.     DW    ZBRAN
  1712.     DW    OFFSET AWORD1-$
  1713.     DW    DDROP
  1714.     DW    DDROP
  1715.     DW    ZERO
  1716.     DW    HERE
  1717.     DW    STORE
  1718.     DW    BRAN
  1719.     DW    OFFSET AWORD2-$
  1720. AWORD1    DW    TOIN
  1721.     DW    PSTOR
  1722.     DW    OVER
  1723.     DW    SUBB
  1724.     DW    DUPP
  1725.     DW    TOR
  1726.     DW    HERE
  1727.     DW    CSTOR
  1728.     DW    PLUS
  1729.     DW    HERE
  1730.     DW    ONEP
  1731.     DW    FROMR
  1732.     DW    DUPP
  1733.     DW    LIT
  1734.     DW    0FFH
  1735.     DW    GREAT
  1736.     DW    AABORTQ
  1737.     DB    0BH
  1738.     DB    'INPUT > 255'
  1739.     DW    ONEP
  1740.     DW    CMOVE
  1741. AWORD2    DW    HERE
  1742.     DW    EXIT
  1743. ;
  1744.     DB    81H        ;  =
  1745.     DB    '='+80H
  1746.     DW    AWORD-9
  1747. EQUAL    DW    DOCOL
  1748.     DW    SUBB
  1749.     DW    NOTT
  1750.     DW    EXIT
  1751. ;
  1752.     DB    81H        ;  >
  1753.     DB    '>'+80H
  1754.     DW    EQUAL-4
  1755. GREAT    DW    DOCOL
  1756.     DW    SWAP
  1757.     DW    LESS
  1758.     DW    EXIT
  1759. ;
  1760.     DB    83H        ;  >IN
  1761.     DB    '>I'
  1762.     DB    'N'+80H
  1763.     DW    GREAT-4
  1764. TOIN    DW    DOUSE
  1765.     DW    36H
  1766. ;
  1767.     DB    82H        ;  >R
  1768.     DB    '>'
  1769.     DB    'R'+80H
  1770.     DW    TOIN-6
  1771. TOR    DW    $+2
  1772.     POP    BX
  1773.     DEC    BP
  1774.     DEC    BP
  1775.     MOV    [BP],BX
  1776.     JMP    NEXT
  1777. ;
  1778.     DB    81H        ;  ?
  1779.     DB    '?'+80H
  1780.     DW    TOR-5
  1781. QUES    DW    DOCOL
  1782.     DW    ATT
  1783.     DW    DOT
  1784.     DW    EXIT
  1785. ;
  1786.     DB    85H        ;  ?COMP
  1787.     DB    '?COM'
  1788.     DB    'P'+80H
  1789.     DW    QUES-4
  1790. QCOMP    DW    DOCOL
  1791.     DW    STATE
  1792.     DW    ATT
  1793.     DW    NOTT
  1794.     DW    AABORTQ
  1795.     DB    0CH
  1796.     DB    'COMPILE ONLY'
  1797.     DW    EXIT
  1798. ;
  1799.     DB    8AH        ;  ?CONFIGURE
  1800.     DB    '?CONFIGUR'
  1801.     DB    'E'+80H
  1802.     DW    QCOMP-8
  1803. QCONF    DW    DOCOL
  1804.     DW    CR
  1805.     DW    CR
  1806.     DW    MAXDRV
  1807.     DW    DOT
  1808.     DW    ADOTQ
  1809.     DB    16H
  1810.     DB    'DRIVES WITH DENSITIES:'
  1811.     DW    MAXDRV
  1812.     DW    ZERO
  1813.     DW    ADO
  1814. QCONF1    DW    IDO
  1815.     DW    DRDEN
  1816.     DW    TWO
  1817.     DW    SPACS
  1818.     DW    DOT
  1819.     DW    ALOOP
  1820.     DW    QCONF1-$
  1821.     DW    CR
  1822.     DW    CR
  1823.     DW    ADOTQ
  1824.     DB    0CH
  1825.     DB    'DENSITY CODE'
  1826.     DW    CR
  1827.     DW    ADOTQ
  1828.     DB    0AH
  1829.     DB    '0 - 5-SSDD'
  1830.     DW    CR
  1831.     DW    ADOTQ
  1832.     DB    0AH
  1833.     DB    '1 - 5-DSDD'
  1834.     DW    CR
  1835.     DW    ADOTQ
  1836.     DB    0AH
  1837.     DB    '2 - 8-DSSD'
  1838.     DW    CR
  1839.     DW    ADOTQ
  1840.     DB    0AH
  1841.     DB    '3 - 8-SSDD'
  1842.     DW    CR
  1843.     DW    ADOTQ
  1844.     DB    0AH
  1845.     DB    '4 - 8-DSDD'
  1846.     DW    CR
  1847.     DW    ADOTQ
  1848.     DB    0BH
  1849.     DB    '5 - 8-SSEXT'
  1850.     DW    CR
  1851.     DW    ADOTQ
  1852.     DB    0BH
  1853.     DB    '6 - 8-DSEXT'
  1854.     DW    CR
  1855.     DW    EXIT
  1856. ;
  1857.     DB    84H        ;  ?CSP
  1858.     DB    '?CS'
  1859.     DB    'P'+80H
  1860.     DW    QCONF-0DH
  1861. QCSP    DW    DOCOL
  1862.     DW    SPAT
  1863.     DW    CSP
  1864.     DW    ATT
  1865.     DW    SUBB
  1866.     DW    AABORTQ
  1867.     DB    17H
  1868.     DB    'DEFINITION NOT FINISHED'
  1869.     DW    EXIT
  1870. ;
  1871.     DB    84H        ;  ?DUP
  1872.     DB    '?DU'
  1873.     DB    'P'+80H
  1874.     DW    QCSP-7
  1875. QDUP    DW    DOCOL
  1876.     DW    DUPP
  1877.     DW    ZBRAN
  1878.     DW    QDUP1-$
  1879.     DW    DUPP
  1880. QDUP1    DW    EXIT
  1881. ;
  1882.     DB    88H        ;  ?LOADING
  1883.     DB    '?LOADIN'
  1884.     DB    'G'+80H
  1885.     DW    QDUP-7
  1886. QLOAD    DW    DOCOL
  1887.     DW    BLK
  1888.     DW    ATT
  1889.     DW    NOTT
  1890.     DW    AABORTQ
  1891.     DB    0CH
  1892.     DB    'LOADING ONLY'
  1893.     DW    EXIT
  1894. ;
  1895.     DB    86H        ;  ?PAIRS
  1896.     DB    '?PAIR'
  1897.     DB    'S'+80H
  1898.     DW    QLOAD-0BH
  1899. QPAIR    DW    DOCOL
  1900.     DW    SUBB
  1901.     DW    AABORTQ
  1902.     DB    17H
  1903.     DB    'CONDITIONALS NOT PAIRED'
  1904.     DW    EXIT
  1905. ;
  1906.     DB    86H        ;  ?STACK
  1907.     DB    '?STAC'
  1908.     DB    'K'+80H
  1909.     DW    QPAIR-9
  1910. QSTAC    DW    DOCOL
  1911.     DW    SPAT
  1912.     DW    SZERO
  1913.     DW    SWAP
  1914.     DW    ULESS
  1915.     DW    AABORTQ
  1916.     DB    13H
  1917.     DB    'STACK OUT OF BOUNDS'
  1918.     DW    SPAT
  1919.     DW    HERE
  1920.     DW    LIT
  1921.     DW    80H
  1922.     DW    PLUS
  1923.     DW    ULESS
  1924.     DW    AABORTQ
  1925.     DB    0AH
  1926.     DB    'FULL STACK'
  1927.     DW    EXIT
  1928. ;
  1929.     DB    87H        ;  ?STREAM
  1930.     DB    '?STREA'
  1931.     DB    'M'+80H
  1932.     DW    QSTAC-9
  1933. QSTREAM DW    DOCOL
  1934.     DW    AABORTQ
  1935.     DB    16H
  1936.     DB    'INPUT STREAM EXHAUSTED'
  1937.     DW    EXIT
  1938. ;
  1939.     DB    89H        ;  ?TERMINAL
  1940.     DB    '?TERMINA'
  1941.     DB    'L'+80H
  1942.     DW    QSTREAM-0AH
  1943. QTERM    DW    DOCOL
  1944.     DW    TQTERM
  1945.     DW    ATT
  1946.     DW    EXEC
  1947.     DW    EXIT
  1948. ;
  1949.     DB    81H        ;  @
  1950.     DB    '@'+80H
  1951.     DW    QTERM-0CH
  1952. ATT    DW    $+2
  1953.     POP    BX
  1954.     MOV    AX,[BX]
  1955.     JMP    APUSH
  1956. ;
  1957.     DB    82H        ;  @L
  1958.     DB    '@'
  1959.     DB    'L'+80H
  1960.     DW    ATT-4
  1961. ATL    DW    $+2
  1962.     POP    BX
  1963.     POP    DS
  1964.     MOV    AX,[BX]
  1965.     MOV    BX,CS
  1966.     MOV    DS,BX
  1967.     JMP    APUSH
  1968. ;
  1969.     DB    85H        ;  ABORT
  1970.     DB    'ABOR'
  1971.     DB    'T'+80H
  1972.     DW    ATL-5
  1973. ABORT    DW    DOCOL
  1974.     DW    TABORT
  1975.     DW    ATT
  1976.     DW    EXEC
  1977.     DW    EXIT
  1978. ;
  1979.     DB    0C6H        ;  ABORT"
  1980.     DB    'ABORT'
  1981.     DB    '"'+80H
  1982.     DW    ABORT-8
  1983. ABORTQ    DW    DOCOL
  1984.     DW    QCOMP
  1985.     DW    COMP
  1986.     DW    AABORTQ
  1987.     DW    TSTREAM
  1988.     DW    CAT
  1989.     DW    LIT
  1990.     DW    22H
  1991.     DW    EQUAL
  1992.     DW    ZBRAN
  1993.     DW    ABORTQ1-$
  1994.     DW    ONE
  1995.     DW    TOIN
  1996.     DW    PSTOR
  1997.     DW    ZERO
  1998.     DW    CCOMM
  1999.     DW    BRAN
  2000.     DW    ABORTQ2-$
  2001. ABORTQ1 DW    LIT
  2002.     DW    22H
  2003.     DW    WORDD
  2004.     DW    DUPP
  2005.     DW    CAT
  2006.     DW    ONEP
  2007.     DW    SWAP
  2008.     DW    OVER
  2009.     DW    PLUS
  2010.     DW    CAT
  2011.     DW    LIT
  2012.     DW    22H
  2013.     DW    EQUAL
  2014.     DW    NOTT
  2015.     DW    QSTREAM
  2016.     DW    ALLOT
  2017. ABORTQ2 DW    EXIT
  2018. ;
  2019.     DB    83H        ;  ABS
  2020.     DB    'AB'
  2021.     DB    'S'+80H
  2022.     DW    ABORTQ-9
  2023. ABSS    DW    DOCOL
  2024.     DW    DUPP
  2025.     DW    PM
  2026.     DW    EXIT
  2027. ;
  2028.     DB    0C5H        ;  AGAIN
  2029.     DB    'AGAI'
  2030.     DB    'N'+80H
  2031.     DW    ABSS-6
  2032. AGAIN    DW    DOCOL
  2033.     DW    ONE
  2034.     DW    QPAIR
  2035.     DW    COMP
  2036.     DW    BRAN
  2037.     DW    HERE
  2038.     DW    SUBB
  2039.     DW    COMMA
  2040.     DW    EXIT
  2041. ;
  2042.     DB    85H        ;  ALLOT
  2043.     DB    'ALLO'
  2044.     DB    'T'+80H
  2045.     DW    AGAIN-8
  2046. ALLOT    DW    DOCOL
  2047.     DW    DP
  2048.     DW    PSTOR
  2049.     DW    EXIT
  2050. ;
  2051.     DB    83H        ;  AND
  2052.     DB    'AN'
  2053.     DB    'D'+80H
  2054.     DW    ALLOT-8
  2055. ANDD    DW    $+2
  2056.     POP    BX
  2057.     POP    AX
  2058.     AND    AX,BX
  2059.     JMP    APUSH
  2060. ;
  2061.     DB    85H        ;  APUSH
  2062.     DB    'APUS'
  2063.     DB    'H'+80H
  2064.     DW    ANDD-6
  2065. APUSHH    DW    DOCON
  2066.     DW    APUSH
  2067. ;
  2068.     DB    84H        ;  BASE
  2069.     DB    'BAS'
  2070.     DB    'E'+80H
  2071.     DW    APUSHH-8
  2072. BASE    DW    DOUSE
  2073.     DW    38H
  2074. ;
  2075.     DB    0C5H        ;  BEGIN
  2076.     DB    'BEGI'
  2077.     DB    'N'+80H
  2078.     DW    BASE-7
  2079. BEGIN    DW    DOCOL
  2080.     DW    QCOMP
  2081.     DW    HERE
  2082.     DW    ONE
  2083.     DW    EXIT
  2084. ;
  2085.     DB    82H        ;  BL
  2086.     DB    'B'
  2087.     DB    'L'+80H
  2088.     DW    BEGIN-8
  2089. BLL    DW    DOCON
  2090.     DW    20H
  2091. ;
  2092.     DB    85H        ;  BLANK
  2093.     DB    'BLAN'
  2094.     DB    'K'+80H
  2095.     DW    BLL-5
  2096. BLANK    DW    DOCOL
  2097.     DW    BLL
  2098.     DW    FILL
  2099.     DW    EXIT
  2100. ;
  2101.     DB    83H        ;  BLK
  2102.     DB    'BL'
  2103.     DB    'K'+80H
  2104.     DW    BLANK-8
  2105. BLK    DW    DOUSE
  2106.     DW    3AH
  2107. ;
  2108.     DB    87H        ;  BLK/DRV
  2109.     DB    'BLK/DR'
  2110.     DB    'V'+80H
  2111.     DW    BLK-6
  2112. BPDR    DW    DOVAR
  2113.     DW    0A0H
  2114.     DW    140H
  2115.     DW    1F4H
  2116.     DW    1F4H
  2117.     DW    3E8H
  2118.     DW    268H
  2119.     DW    4D0H
  2120. ;
  2121.     DB    85H        ;  BLOCK 
  2122.     DB    'BLOC'
  2123.     DB    'K'+80H
  2124.     DW    BPDR-0AH
  2125. BLOCK    DW    DOCOL
  2126.     DW    TBLOCK
  2127.     DW    ATT
  2128.     DW    EXEC
  2129.     DW    EXIT
  2130. ;
  2131.     DB    85H        ;  BPDRV
  2132.     DB    'BPDR'
  2133.     DB    'V'+80H
  2134.     DW    BLOCK-8
  2135. BPDRV    DW    DOCOL
  2136.     DW    DENSTY
  2137.     DW    ATT
  2138.     DW    LIT
  2139.     DW    6H
  2140.     DW    MIN
  2141.     DW    TWOST
  2142.     DW    BPDR
  2143.     DW    PLUS
  2144.     DW    ATT
  2145.     DW    EXIT
  2146. ;
  2147.     DB    86H        ;  BRANCH
  2148.     DB    'BRANC'
  2149.     DB    'H'+80H
  2150.     DW    BPDRV-8
  2151. BRAN    DW    $+2
  2152. BRAN1:    ADD    SI,[SI]
  2153.     JMP    NEXT
  2154. ;
  2155.     DB    86H        ;  BUFFER
  2156.     DB    'BUFFE'
  2157.     DB    'R'+80H
  2158.     DW    BRAN-9
  2159. BUFFE    DW    DOCOL
  2160.     DW    USEE
  2161.     DW    ATT
  2162.     DW    PREV
  2163.     DW    ATT
  2164.     DW    EQUAL
  2165.     DW    ZBRAN
  2166.     DW    BUFF1-$
  2167.     DW    USEE
  2168.     DW    ATT
  2169.     DW    PBUF
  2170.     DW    DROP
  2171.     DW    USEE
  2172.     DW    STORE
  2173. BUFF1    DW    USEE
  2174.     DW    ATT
  2175.     DW    DUPP
  2176.     DW    TOR
  2177. BUFF2    DW    PBUF
  2178.     DW    ZBRAN
  2179.     DW    OFFSET BUFF2-$
  2180.     DW    USEE
  2181.     DW    STORE
  2182.     DW    RAT
  2183.     DW    ATT
  2184.     DW    ZLESS
  2185.     DW    ZBRAN
  2186.     DW    OFFSET BUFF3-$
  2187.     DW    RAT
  2188.     DW    TWOP
  2189.     DW    RAT
  2190.     DW    ATT     
  2191.     DW    LIT
  2192.     DW    7FFFH
  2193.     DW    ANDD
  2194.     DW    ZERO
  2195.     DW    RSLW
  2196. BUFF3    DW    RAT
  2197.     DW    STORE
  2198.     DW    RAT
  2199.     DW    PREV
  2200.     DW    STORE
  2201.     DW    FROMR
  2202.     DW    TWOP
  2203.     DW    EXIT
  2204. ;
  2205.     DB    83H        ;  BYE
  2206.     DB    'BY'
  2207.     DB    'E'+80H
  2208.     DW    BUFFE-9
  2209. BYE    DW    DOCOL
  2210.     DW    FREEZE
  2211.     DW    ZERO
  2212.     DW    ZERO
  2213.     DW    SYSCALL
  2214.     DW    EXIT
  2215. ;
  2216.     DB    82H        ;  CSTORE
  2217.     DB    'C'
  2218.     DB    '!'+80H
  2219.     DW    BYE-6
  2220. CSTOR    DW    $+2
  2221.     POP    BX
  2222.     POP    AX
  2223.     MOV    [BX],AL
  2224.     JMP    NEXT
  2225. ;
  2226.     DB    83H        ;  CSTOREL
  2227.     DB    'C!'
  2228.     DB    'L'+80H
  2229.     DW    CSTOR-5
  2230. CSTORL    DW    $+2
  2231.     POP    BX
  2232.     POP    DS
  2233.     POP    AX
  2234.     MOV    [BX],AL
  2235.     MOV    BX,CS
  2236.     MOV    DS,BX
  2237.     JMP    NEXT
  2238. ;
  2239.     DB    82H        ;  C,
  2240.     DB    'C'
  2241.     DB    ','+80H
  2242.     DW    CSTORL-6
  2243. CCOMM    DW    DOCOL
  2244.     DW    HERE
  2245.     DW    CSTOR
  2246.     DW    ONE
  2247.     DW    ALLOT
  2248.     DW    EXIT
  2249. ;
  2250.     DB    83H        ;  C/L
  2251.     DB    'C/'
  2252.     DB    'L'+80H
  2253.     DW    CCOMM-5
  2254. CSLL    DW    DOCON
  2255.     DW    40H
  2256. ;
  2257.     DB    82H        ;  C@
  2258.     DB    'C'
  2259.     DB    '@'+80H
  2260.     DW    CSLL-6
  2261. CAT    DW    $+2
  2262.     POP    BX
  2263.     MOV    AL,[BX]
  2264.     SUB    AH,AH
  2265.     JMP    APUSH
  2266. ;
  2267.     DB    83H        ;  C@L
  2268.     DB    'C@'
  2269.     DB    'L'+80H
  2270.     DW    CAT-5
  2271. CATL    DW    $+2
  2272.     POP    BX
  2273.     POP    DS
  2274.     MOV    AL,[BX]
  2275.     SUB    AH,AH
  2276.     MOV    BX,CS
  2277.     MOV    DS,BX
  2278.     JMP    APUSH
  2279. ;
  2280.     DB    83H        ;  CFA
  2281.     DB    'CF'
  2282.     DB    'A'+80H
  2283.     DW    CATL-6
  2284. CFA    DW    DOCOL
  2285.     DW    TWOM
  2286.     DW    EXIT
  2287. ;
  2288.     DB    86H        ;  CHANGE
  2289.     DB    'CHANG'
  2290.     DB    'E'+80H
  2291.     DW    CFA-6
  2292. CHANGE    DW    DOCOL
  2293.     DW    FREEZE
  2294.     DW    LIMIT
  2295.     DW    LIT
  2296.     DW    404H
  2297.     DW    NOBUF
  2298.     DW    STAR
  2299.     DW    SUBB
  2300.     DW    DUPP
  2301.     DW    LIT
  2302.     DW    FIRST+2
  2303.     DW    STORE
  2304.     DW    LIT
  2305.     DW    US
  2306.     DW    SUBB
  2307.     DW    DUPP
  2308.     DW    LIT
  2309.     DW    RTS
  2310.     DW    SUBB
  2311.     DW    DUPP
  2312.     DW    LIT
  2313.     DW    INITUSER
  2314.     DW    STORE
  2315.     DW    LIT
  2316.     DW    INITUSER+4
  2317.     DW    STORE
  2318.     DW    DUPP
  2319.     DW    LIT
  2320.     DW    INITUSER+2
  2321.     DW    STORE
  2322.     DW    LIT
  2323.     DW    UP
  2324.     DW    OVER
  2325.     DW    LIT
  2326.     DW    RPP
  2327.     DW    LIT
  2328.     DW    ORIG
  2329.     DW    HERE
  2330.     DW    STORE
  2331.     DW    HERE
  2332.     DW    ROT
  2333.     DW    ROT
  2334.     DW    STORE
  2335.     DW    ROT
  2336.     DW    ROT
  2337.     DW    STORE
  2338.     DW    EXEC
  2339.     DW    EXIT
  2340. ;
  2341.     DB    85H        ;  CLEAR
  2342.     DB    'CLEA'
  2343.     DB    'R'+80H
  2344.     DW    CHANGE-9
  2345. CLEAR    DW    DOCOL
  2346.     DW    OFSET
  2347.     DW    ATT
  2348.     DW    PLUS
  2349.     DW    BUFFE
  2350.     DW    LIT
  2351.     DW    400H
  2352.     DW    BLL
  2353.     DW    FILL    
  2354.     DW    UPDAT
  2355.     DW    EXIT
  2356. ;
  2357.     DB    85H        ;  CMOVE
  2358.     DB    'CMOV'
  2359.     DB    'E'+80H
  2360.     DW    CLEAR-8
  2361. CMOVE    DW    DOCOL
  2362.     DW    DUPP
  2363.     DW    ONE
  2364.     DW    LESS
  2365.     DW    ZBRAN
  2366.     DW    CMOVE1-$
  2367.     DW    DDROP
  2368.     DW    DROP
  2369.     DW    BRAN
  2370.     DW    CMOVE2-$
  2371. CMOVE1    DW    ACMOVE
  2372. CMOVE2    DW    EXIT
  2373. ;
  2374.     DB    84H        ;  COLD
  2375.     DB    'COL'
  2376.     DB    'D'+80H
  2377.     DW    CMOVE-8
  2378. COLD    DW    DOCOL
  2379.     DW    MTBUF
  2380.     DW    LIT
  2381.     DW    INITUSER
  2382.     DW    LIT
  2383.     DW    UP
  2384.     DW    ATT
  2385.     DW    LIT
  2386.     DW    6
  2387.     DW    PLUS
  2388.     DW    LIT
  2389.     DW    30H
  2390.     DW    CMOVE
  2391.     DW    PAGEE
  2392.     DW    ADOTQ
  2393.     DB    1DH
  2394.     DB    'MVP-FORTH   VERSION 1.0305.03'
  2395.     DW    CR
  2396.     DW    ONE
  2397.     DW    DENSTY
  2398.     DW    STORE
  2399.     DW    FIRST
  2400.     DW    USEE
  2401.     DW    STORE
  2402.     DW    FIRST
  2403.     DW    PREV
  2404.     DW    STORE
  2405.     DW    DR0
  2406.     DW    ZERO
  2407.     DW    EPRINT
  2408.     DW    STORE
  2409.     DW    LIT
  2410.     DW    INITFORTH
  2411.     DW    ATT
  2412.     DW    LIT
  2413.     DW    FORTH+2
  2414.     DW    TWOP
  2415.     DW    STORE
  2416.     DW    DEC
  2417.     DW    LIT
  2418.     DW    40H
  2419.     DW    LIT
  2420.     DW    40H
  2421.     DW    LIT
  2422.     DW    17H
  2423.     DW    STOREL
  2424.     DW    ABORT
  2425.     DW    EXIT
  2426. ;
  2427.     DB    87H        ;  COMPILE
  2428.     DB    'COMPIL'
  2429.     DB    'E'+80H
  2430.     DW    COLD-7
  2431. COMP    DW    DOCOL
  2432.     DW    QCOMP
  2433.     DW    FROMR
  2434.     DW    DUPP
  2435.     DW    TWOP
  2436.     DW    TOR
  2437.     DW    ATT
  2438.     DW    COMMA
  2439.     DW    EXIT
  2440. ;
  2441.     DB    89H        ;  CONFIGURE
  2442.     DB    'CONFIGUR'
  2443.     DB    'E'+80H
  2444.     DW    COMP-0AH
  2445. CONF    DW    DOCOL
  2446.     DW    QCONF
  2447.     DW    CR
  2448.     DW    ADOTQ
  2449.     DB    13H
  2450.     DB    'NUMBER OF DRIVES ? '
  2451.     DW    KEY
  2452.     DW    LIT
  2453.     DW    31H
  2454.     DW    SUBB
  2455.     DW    DUPP
  2456.     DW    LIT
  2457.     DW    5
  2458.     DW    ULESS    
  2459.     DW    NOTT
  2460.     DW    AABORTQ
  2461.     DB    0FH
  2462.     DB    'TOO MANY DRIVES'
  2463.     DW    DUPP
  2464.     DW    LIT
  2465.     DW    31H
  2466.     DW    PLUS
  2467.     DW    EMIT
  2468.     DW    ONEP
  2469.     DW    LIT
  2470.     DW    MAXDRV+2
  2471.     DW    STORE
  2472.     DW    MAXDRV 
  2473.     DW    ZERO
  2474.     DW    ADO
  2475. CONF1    DW    CR
  2476.     DW    ADOTQ
  2477.     DB    6
  2478.     DB    'DRIVE '
  2479.     DW    IDO
  2480.     DW    DOT
  2481.     DW    ADOTQ
  2482.     DB    2
  2483.     DB    '? '
  2484.     DW    KEY
  2485.     DW    LIT
  2486.     DW    30H
  2487.     DW    SUBB
  2488.     DW    DUPP
  2489.     DW    LIT
  2490.     DW    7
  2491.     DW    ULESS
  2492.     DW    NOTT
  2493.     DW    AABORTQ
  2494.     DB    0CH
  2495.     DB    'OUT OF RANGE'
  2496.     DW    DUPP
  2497.     DW    LIT
  2498.     DW    30H
  2499.     DW    PLUS
  2500.     DW    EMIT
  2501.     DW    IDO
  2502.     DW    TWOST
  2503.     DW    DEN
  2504.     DW    PLUS
  2505.     DW    STORE
  2506.     DW    ALOOP
  2507.     DW    CONF1-$ 
  2508.     DW    DR0
  2509.     DW    CR
  2510.     DW    CR
  2511.     DW    ADOTQ
  2512.     DB    0DH
  2513.     DB    'DR0 SELECTED '
  2514.     DW    CR
  2515.     DW    EXIT
  2516. ;
  2517.     DB    88H        ; CONSTANT
  2518.     DB    'CONSTAN'
  2519.     DB    'T'+80H
  2520.     DW    CONF-0CH
  2521. CON    DW    DOCOL
  2522.     DW    CREATE
  2523.     DW    COMMA
  2524.     DW    ASCODE
  2525. DOCON:    INC    DX
  2526.     MOV    BX,DX
  2527.     MOV    AX,[BX]
  2528.     JMP    APUSH
  2529. ;
  2530.     DB    87H        ;  CONTEXT
  2531.     DB    'CONTEX'
  2532.     DB    'T'+80H
  2533.     DW    CON-0BH
  2534. CONT    DW    DOUSE
  2535.     DW    3CH
  2536. ;
  2537.     DB    87H        ;  CONVERT
  2538.     DB    'CONVER'
  2539.     DB    'T'+80H
  2540.     DW    CONT-0AH
  2541. CONV    DW    DOCOL
  2542. CONV1    DW    ONEP
  2543.     DW    DUPP
  2544.     DW    TOR
  2545.     DW    CAT
  2546.     DW    BASE
  2547.     DW    ATT
  2548.     DW    DIGIT
  2549.     DW    ZBRAN
  2550.     DW    OFFSET CONV3-$
  2551.     DW    SWAP
  2552.     DW    BASE
  2553.     DW    ATT
  2554.     DW    USTAR
  2555.     DW    DROP
  2556.     DW    ROT
  2557.     DW    BASE
  2558.     DW    ATT
  2559.     DW    USTAR
  2560.     DW    DPLUS
  2561.     DW    DPL
  2562.     DW    ATT
  2563.     DW    ONEP
  2564.     DW    ZBRAN
  2565.     DW    OFFSET CONV2-$
  2566.     DW    ONE
  2567.     DW    DPL
  2568.     DW    PSTOR
  2569. CONV2    DW    FROMR
  2570.     DW    BRAN
  2571.     DW    OFFSET CONV1-$
  2572. CONV3    DW    FROMR
  2573.     DW    EXIT
  2574. ;
  2575.     DB    85H        ;  COUNT
  2576.     DB    'COUN'
  2577.     DB    'T'+80H
  2578.     DW    CONV-0AH
  2579. COUNT    DW    DOCOL
  2580.     DW    DUPP
  2581.     DW    ONEP
  2582.     DW    SWAP
  2583.     DW    CAT
  2584.     DW    EXIT
  2585. ;
  2586.     DB    82H        ;  CR
  2587.     DB    'C'
  2588.     DB    'R'+80H
  2589.     DW    COUNT-8
  2590. CR    DW    DOCOL
  2591.     DW    TCR
  2592.     DW    ATT
  2593.     DW    EXEC
  2594.     DW    EXIT
  2595. ;
  2596.     DB    86H        ;  CREATE
  2597.     DB    'CREAT'
  2598.     DB    'E'+80H
  2599.     DW    CR-5
  2600. CREATE    DW    DOCOL
  2601.     DW    BLL
  2602.     DW    WORDD
  2603.     DW    DUPP
  2604.     DW    DUPP
  2605.     DW    ONEP
  2606.     DW    CAT
  2607.     DW    ZERO
  2608.     DW    EQUAL
  2609.     DW    AABORTQ
  2610.     DB    1AH
  2611.     DB    'ATTEMPTED TO REDEFINE NULL'
  2612.     DW    DUPP
  2613.     DW    CONT
  2614.     DW    ATT
  2615.     DW    ATT
  2616.     DW    AFIND
  2617.     DW    ZBRAN
  2618.     DW    OFFSET CREA1-$
  2619.     DW    DDROP
  2620.     DW    WARN
  2621.     DW    ATT
  2622.     DW    ZBRAN
  2623.     DW    OFFSET CREA1-$
  2624.     DW    DUPP
  2625.     DW    COUNT
  2626.     DW    TYPEE
  2627.     DW    SPACE
  2628.     DW    ADOTQ
  2629.     DB    0DH
  2630.     DB    'ISN',27H,'T UNIQUE '
  2631. CREA1    DW    CAT
  2632.     DW    WIDTHH
  2633.     DW    ATT
  2634.     DW    MIN
  2635.     DW    ONEP
  2636.     DW    ALLOT
  2637.     DW    DUPP
  2638.     DW    LIT
  2639.     DW    80H
  2640.     DW    TOGGL
  2641.     DW    HERE
  2642.     DW    ONEM
  2643.     DW    LIT
  2644.     DW    80H
  2645.     DW    TOGGL
  2646.     DW    LATES
  2647.     DW    COMMA
  2648.     DW    TWO
  2649.     DW    ALLOT
  2650.     DW    CURR
  2651.     DW    ATT
  2652.     DW    STORE
  2653.     DW    ASCODE
  2654. DOVAR:    INC    DX
  2655.     PUSH    DX
  2656.     JMP    NEXT 
  2657. ;
  2658.     DB    83H        ;  CSP
  2659.     DB    'CS'
  2660.     DB    'P'+80H
  2661.     DW    CREATE-9
  2662. CSP    DW    DOUSE
  2663.     DW    3EH
  2664. ;
  2665.     DB    87H        ; CURRENT
  2666.     DB    'CURREN'
  2667.     DB    'T'+80H
  2668.     DW    CSP-6
  2669. CURR    DW    DOUSE
  2670.     DW    40H
  2671. ;
  2672.     DB    82H        ;  DSTORE
  2673.     DB    'D'
  2674.     DB    '!'+80H
  2675.     DW    CURR-0AH
  2676. DSTOR    DW    $+2
  2677.     POP    BX
  2678.     POP    AX
  2679.     MOV    [BX],AX
  2680.     POP    AX
  2681.     MOV    2[BX],AX
  2682.     JMP    NEXT
  2683. ;
  2684.     DB    82H          ;  D+
  2685.     DB    'D'
  2686.     DB    '+'+80H
  2687.     DW    DSTOR-5
  2688. DPLUS    DW    $+2
  2689.     POP    AX
  2690.     POP    DX
  2691.     POP    BX
  2692.     POP    CX
  2693.     ADD    DX,CX
  2694.     ADC    AX,BX
  2695.     JMP    DPUSH
  2696. ;
  2697.     DB    83H        ;  D+-
  2698.     DB    'D+'
  2699.     DB    '-'+80H
  2700.     DW    DPLUS-5
  2701. DPM    DW    DOCOL
  2702.     DW    ZLESS
  2703.     DW    ZBRAN
  2704.     DW    OFFSET DPM1-$
  2705.     DW    DNEG
  2706. DPM1    DW    EXIT
  2707. ;
  2708.     DB    82H        ;  D.
  2709.     DB    'D'
  2710.     DB    '.'+80H
  2711.     DW    DPM-6
  2712. DDOT    DW    DOCOL
  2713.     DW    ZERO
  2714.     DW    DDOTR
  2715.     DW    SPACE
  2716.     DW    EXIT
  2717. ;
  2718.     DB    83H        ;  D.R
  2719.     DB    'D.'
  2720.     DB    'R'+80H
  2721.     DW    DDOT-5
  2722. DDOTR    DW    DOCOL
  2723.     DW    DEPTH
  2724.     DW    LIT
  2725.     DW    3
  2726.     DW    LESS
  2727.     DW    AABORTQ
  2728.     DB    0BH
  2729.     DB    'EMPTY STACK'
  2730.     DW    TOR
  2731.     DW    SWAP
  2732.     DW    OVER
  2733.     DW    DUPP
  2734.     DW    DPM
  2735.     DW    BDIGS
  2736.     DW    DIGS
  2737.     DW    ROT
  2738.     DW    SIGN
  2739.     DW    EDIGS
  2740.     DW    FROMR
  2741.     DW    OVER
  2742.     DW    SUBB
  2743.     DW    SPACS
  2744.     DW    TYPEE
  2745.     DW    EXIT
  2746. ;
  2747.     DB    82H        ;  D<
  2748.     DB    'D'
  2749.     DB    '<'+80H
  2750.     DW    DDOTR-6
  2751. DLESS    DW    DOCOL
  2752.     DW    ROT
  2753.     DW    DDUP
  2754.     DW    EQUAL
  2755.     DW    ZBRAN
  2756.     DW    DLESS1-$
  2757.     DW    ROT
  2758.     DW    ROT
  2759.     DW    DNEG
  2760.     DW    DPLUS
  2761.     DW    ZLESS
  2762.     DW    BRAN
  2763.     DW    DLESS2-$
  2764. DLESS1    DW    SWAP
  2765.     DW    LESS
  2766.     DW    SWAP
  2767.     DW    DROP
  2768. DLESS2    DW    SWAP
  2769.     DW    DROP
  2770.     DW    EXIT
  2771. ;
  2772.     DB    84H        ;  DABS
  2773.     DB    'DAB'
  2774.     DB    'S'+80H
  2775.     DW    DLESS-5
  2776. DABS    DW    DOCOL
  2777.     DW    DUPP
  2778.     DW    DPM
  2779.     DW    EXIT
  2780. ;
  2781.     DB    85H        ;  DDROP
  2782.     DB    'DDRO'
  2783.     DB    'P'+80H
  2784.     DW    DABS-7
  2785. DDROP    DW    $+2
  2786.     POP    BX
  2787.     POP    BX
  2788.     JMP    NEXT
  2789. ;
  2790.     DB    84H        ;  DDUP
  2791.     DB    'DDU'
  2792.     DB    'P'+80H
  2793.     DW    DDROP-8
  2794. DDUP    DW    $+2
  2795.     POP    AX
  2796.     POP    DX
  2797.     PUSH    DX
  2798.     PUSH    AX
  2799.     JMP    DPUSH
  2800. ;
  2801.     DB    87H        ;  DECIMAL
  2802.     DB    'DECIMA'
  2803.     DB    'L'+80H
  2804.     DW    DDUP-7
  2805. DEC    DW    DOCOL
  2806.     DW    LIT
  2807.     DW    0AH
  2808.     DW    BASE
  2809.     DW    STORE
  2810.     DW    EXIT
  2811. ;
  2812.     DB    8BH        ;  DEFINITIONS
  2813.     DB    'DEFINITION'
  2814.     DB    'S'+80H
  2815.     DW    DEC-0AH
  2816. DEFIN    DW    DOCOL
  2817.     DW    CONT
  2818.     DW    ATT
  2819.     DW    CURR
  2820.     DW    STORE
  2821.     DW    EXIT
  2822. ;
  2823.     DB    83H        ;  DEN
  2824.     DB    'DE'    
  2825.     DB    'N'+80H
  2826.     DW    DEFIN-0EH
  2827. DEN    DW    DOVAR
  2828.     DW    0
  2829.     DW    0
  2830.     DW    1
  2831.     DW    1
  2832.     DW    1
  2833. ;
  2834.     DB    87H        ;  DENSITY
  2835.     DB    'DENSIT'
  2836.     DB    'Y'+80H
  2837.     DW    DEN-6
  2838. DENSTY    DW    DOVAR
  2839.     DW    0
  2840. ;
  2841.     DB    85H        ;  DEPTH
  2842.     DB    'DEPT'
  2843.     DB    'H'+80H
  2844.     DW    DENSTY-0AH
  2845. DEPTH    DW    DOCOL
  2846.     DW    SPAT
  2847.     DW    SZERO
  2848.     DW    SWAP
  2849.     DW    SUBB
  2850.     DW    TWOSL
  2851.     DW    EXIT
  2852. ;
  2853.     DB    85H        ;  DIGIT
  2854.     DB    'DIGI'
  2855.     DB    'T'+80H
  2856.     DW    DEPTH-8
  2857. DIGIT    DW    $+2
  2858.     POP    DX
  2859.     POP    AX
  2860.     SUB    AL,'0'
  2861.     JB    DIGI2
  2862.     CMP    AL,9H
  2863.     JBE    DIGI1
  2864.     SUB    AL,7H
  2865.     CMP    AL,0AH
  2866.     JB    DIGI2
  2867. DIGI1:    CMP    AL,DL
  2868.     JAE    DIGI2
  2869.     SUB    DX,DX
  2870.     MOV    DL,AL
  2871.     MOV    AL,01H
  2872.     JMP    DPUSH
  2873. DIGI2:    SUB    AX,AX
  2874.     JMP    APUSH
  2875. ;
  2876.     DB    8AH        ;  DISK-ERROR
  2877.     DB    'DISK-ERRO'
  2878.     DB    'R'+80H
  2879.     DW    DIGIT-8
  2880. DSKERR    DW    DOVAR
  2881.     DW    0
  2882. ;
  2883.     DB    0C8H        ;  DLITERAL
  2884.     DB    'DLITERA'
  2885.     DB    'L'+80H
  2886.     DW    DSKERR-0DH
  2887. DLITE    DW    DOCOL
  2888.     DW    STATE
  2889.     DW    ATT
  2890.     DW    ZBRAN
  2891.     DW    OFFSET DLITE1-$
  2892.     DW    SWAP
  2893.     DW    LITER
  2894.     DW    LITER
  2895. DLITE1    DW    EXIT
  2896. ;
  2897.     DB    87H        ;  DNEGATE
  2898.     DB    'DNEGAT'
  2899.     DB    'E'+80H
  2900.     DW    DLITE-0BH
  2901. DNEG    DW    $+2
  2902.     POP    BX
  2903.     POP    CX
  2904.     SUB    AX,AX
  2905.     MOV    DX,AX
  2906.     SUB    DX,CX
  2907.     SBB    AX,BX
  2908.     JMP    DPUSH
  2909. ;
  2910.     DB    0C2H        ;  DO
  2911.     DB    'D'
  2912.     DB    'O'+80H
  2913.     DW    DNEG-0AH
  2914. DO    DW    DOCOL
  2915.     DW    COMP
  2916.     DW    ADO
  2917.     DW    HERE
  2918.     DW    LIT
  2919.     DW    3
  2920.     DW    EXIT
  2921. ;
  2922.     DB    0C5H        ;  DOES>
  2923.     DB    'DOES'
  2924.     DB    '>'+80H
  2925.     DW    DO-5
  2926. DOES    DW    DOCOL
  2927.     DW    QCSP
  2928.     DW    COMP
  2929.     DW    ASCODE
  2930.     DW    LIT
  2931.     DW    0E8H
  2932.     DW    CCOMM
  2933.     DW    LIT
  2934.     DW    DODOES
  2935.     DW    HERE
  2936.     DW    TWOP
  2937.     DW    SUBB
  2938.     DW    COMMA
  2939.     DW    EXIT
  2940. ;
  2941. DODOES: INC    DX
  2942.     DEC    BP
  2943.     DEC    BP
  2944.     MOV    [BP],SI
  2945.     POP    SI
  2946.     PUSH    DX
  2947.     JMP    NEXT
  2948. ;
  2949.     DB    82H        ;  DP
  2950.     DB    'D'
  2951.     DB    'P'+80H
  2952.     DW    DOES-8
  2953. DP    DW    DOUSE
  2954.     DW    12H
  2955. ;
  2956.     DB    83H        ;  DPL
  2957.     DB    'DP'
  2958.     DB    'L'+80H
  2959.     DW    DP-5
  2960. DPL    DW    DOUSE
  2961.     DW    42H
  2962. ;
  2963.     DB    85H        ;  DPUSH
  2964.     DB    'DPUS'
  2965.     DB    'H'+80H
  2966.     DW    DPL-6
  2967. DPUS    DW    DOCON
  2968.     DW    DPUSH
  2969. ;
  2970.     DB    86H        ;  DR-DEN
  2971.     DB    'DR-DE'
  2972.     DB    'N'+80H
  2973.     DW    DPUS-8
  2974. DRDEN    DW    DOCOL
  2975.     DW    TWOST
  2976.     DW    DEN
  2977.     DW    PLUS
  2978.     DW    ATT
  2979.     DW    EXIT
  2980. ;
  2981.     DB    83H        ;  DR0
  2982.     DB    'DR'
  2983.     DB    '0'+80H
  2984.     DW    DRDEN-9
  2985. DR0    DW    DOCOL
  2986.     DW    ZERO
  2987.     DW    OFSET
  2988.     DW    STORE
  2989.     DW    EXIT
  2990. ;
  2991.     DB    83H        ;  DR1
  2992.     DB    'DR'
  2993.     DB    '1'+80H
  2994.     DW    DR0-6
  2995. DR1    DW    DOCOL
  2996.     DW    DR0
  2997.     DW    ZERO
  2998.     DW    SETDRX
  2999.     DW    EXIT
  3000. ;
  3001.     DB    83H        ; DR2
  3002.     DB    'DR'
  3003.     DB    '2'+80H
  3004.     DW    DR1-6
  3005. DR2    DW    DOCOL
  3006.     DW    DR1
  3007.     DW    ONE
  3008.     DW    SETDRX
  3009.     DW    EXIT
  3010. ;
  3011.     DB    83H        ;  DR3
  3012.     DB    'DR'
  3013.     DB    '3'+80H
  3014.     DW    DR2-6
  3015. DR3    DW    DOCOL
  3016.     DW    DR2
  3017.     DW    TWO
  3018.     DW    SETDRX
  3019.     DW    EXIT
  3020. ;
  3021.     DB    83H        ;  DR4
  3022.     DB    'DR'
  3023.     DB    '4'+80H
  3024.     DW    DR3-6
  3025. DR4    DW    DOCOL
  3026.     DW    DR3
  3027.     DW    LIT
  3028.     DW    3
  3029.     DW    SETDRX
  3030.     DW    EXIT
  3031. ;
  3032.     DB    85H        ;  DRIVE
  3033.     DB    'DRIV'
  3034.     DB    'E'+80H
  3035.     DW    DR4-6
  3036. DRIVE    DW    DOVAR
  3037.     DW    00
  3038. ;
  3039.     DB    84H        ;  DROP
  3040.     DB    'DRO'
  3041.     DB    'P'+80H
  3042.     DW    DRIVE-8
  3043. DROP    DW    $+2
  3044.     POP    AX
  3045.     JMP    NEXT 
  3046. ;
  3047.     DB    83H        ;  DUP
  3048.     DB    'DU'
  3049.     DB    'P'+80H
  3050.     DW    DROP-7
  3051. DUPP    DW    $+2
  3052.     POP    AX
  3053.     PUSH    AX
  3054.     JMP    APUSH
  3055. ;
  3056.     DB    0C4H        ;  ELSE
  3057.     DB    'ELS'
  3058.     DB    'E'+80H
  3059.     DW    DUPP-6
  3060. ELSEE    DW    DOCOL
  3061.     DW    TWO
  3062.     DW    QPAIR
  3063.     DW    COMP
  3064.     DW    BRAN
  3065.     DW    HERE
  3066.     DW    ZERO
  3067.     DW    COMMA
  3068.     DW    SWAP
  3069.     DW    TWO
  3070.     DW    THENN
  3071.     DW    TWO
  3072.     DW    EXIT
  3073. ;
  3074.     DB    84H        ;  EMIT
  3075.     DB    'EMI'
  3076.     DB    'T'+80H
  3077.     DW    ELSEE-7
  3078. EMIT    DW    DOCOL
  3079.     DW    TEMIT
  3080.     DW    ATT
  3081.     DW    EXEC
  3082.     DW    EXIT
  3083. ;
  3084.     DB    8DH        ;  EMPTY-BUFFERS
  3085.     DB    'EMPTY-BUFFER'
  3086.     DB    'S'+80H
  3087.     DW    EMIT-7
  3088. MTBUF    DW    DOCOL
  3089.     DW    FIRST
  3090.     DW    LIMIT
  3091.     DW    OVER
  3092.     DW    SUBB
  3093.     DW    ZERO
  3094.     DW    AFILL
  3095.     DW    NOBUF
  3096.     DW    ZERO
  3097.     DW    ADO
  3098. MTBUF1    DW    LIT
  3099.     DW    7FFFH
  3100.     DW    LIT
  3101.     DW    404H
  3102.     DW    IDO
  3103.     DW    STAR
  3104.     DW    FIRST
  3105.     DW    PLUS
  3106.     DW    STORE
  3107.     DW    ALOOP
  3108.     DW    OFFSET MTBUF1-$
  3109.     DW    EXIT
  3110. ;
  3111.     DB    87H        ;  ENCLOSE
  3112.     DB    'ENCLOS'
  3113.     DB    'E'+80H
  3114.     DW    MTBUF-10H
  3115. ENCL    DW    $+2
  3116.     POP    AX
  3117.     POP    BX
  3118.     PUSH    BX
  3119.     MOV    DX,0FFFFH
  3120.     DEC    BX
  3121. ENCL1:    INC    BX
  3122.     INC    DX
  3123.     CMP    AL,[BX]
  3124.     JZ    ENCL1
  3125.     PUSH    DX
  3126.     INC    BYTE PTR [BX]
  3127.     DEC    BYTE PTR [BX]
  3128.     JNZ    ENCL2
  3129.     INC    DX
  3130.     PUSH    DX
  3131.     DEC    DX
  3132.     PUSH    DX
  3133.     JMP    NEXT
  3134. ENCL2:    INC    BX
  3135.     INC    DX
  3136.     CMP    AL,[BX]
  3137.     JZ    ENCL3
  3138.     INC    BYTE PTR [BX]
  3139.     DEC    BYTE PTR [BX]
  3140.     JNZ    ENCL2
  3141.     PUSH    DX
  3142.     PUSH    DX
  3143.     JMP    NEXT
  3144. ENCL3:    PUSH    DX
  3145.     INC    DX
  3146.     PUSH    DX
  3147.     JMP    NEXT
  3148. ;
  3149.     DB    86H        ;  EPRINT
  3150.     DB    'EPRIN'
  3151.     DB    'T'+80H
  3152.     DW    ENCL-0AH
  3153. EPRINT    DW    DOVAR
  3154.     DW    0
  3155. ;
  3156.     DB    87H        ;  EXECUTE
  3157.     DB    'EXECUT'
  3158.     DB    'E'+80H
  3159.     DW    EPRINT-9
  3160. EXEC    DW    $+2
  3161.     POP    BX
  3162.     JMP    NEXT1
  3163. ;
  3164.     DB    84H        ;  EXIT
  3165.     DB    'EXI'
  3166.     DB    'T'+80H
  3167.     DW    EXEC-0AH
  3168. EXIT    DW    $+2
  3169.     MOV    SI,[BP]
  3170.     INC    BP
  3171.     INC    BP
  3172.     JMP    NEXT
  3173. ;
  3174.     DB    86H        ;  EXPECT
  3175.     DB    'EXPEC'
  3176.     DB    'T'+80H
  3177.     DW    EXIT-7
  3178. EXPEC    DW    DOCOL
  3179.     DW    TEXPECT
  3180.     DW    ATT
  3181.     DW    EXEC
  3182.     DW    EXIT
  3183. ;
  3184.     DB    85H        ;  FENCE
  3185.     DB    'FENC'
  3186.     DB    'E'+80H
  3187.     DW    EXPEC-9
  3188. FENCE    DW    DOUSE
  3189.     DW    10H
  3190. ;
  3191.     DB    84H        ;  FILL
  3192.     DB    'FIL'
  3193.     DB    'L'+80H
  3194.     DW    FENCE-8
  3195. FILL    DW    DOCOL
  3196.     DW    OVER
  3197.     DW    ZGREAT
  3198.     DW    ZBRAN
  3199.     DW    FILL1-$
  3200.     DW    AFILL
  3201.     DW    BRAN
  3202.     DW    FILL2-$
  3203. FILL1    DW    DDROP
  3204.     DW    DROP
  3205. FILL2    DW    EXIT
  3206. ;
  3207.     DB    84H        ;  FIND
  3208.     DB    'FIN'
  3209.     DB    'D'+80H
  3210.     DW    FILL-7
  3211. FIND    DW    DOCOL
  3212.     DW    DFIND
  3213.     DW    ZBRAN
  3214.     DW    FIND1-$
  3215.     DW    DROP
  3216.     DW    CFA
  3217.     DW    BRAN
  3218.     DW    FIND2-$
  3219. FIND1    DW    ZERO
  3220. FIND2    DW    EXIT
  3221. ;
  3222.     DB    85H        ;  FIRST
  3223.     DB    'FIRS'
  3224.     DB    'T'+80H
  3225.     DW    FIND-7
  3226. FIRST    DW    DOCON
  3227.     DW    BUF1
  3228. ;
  3229.     DB    83H        ;  FLD
  3230.     DB    'FL'
  3231.     DB    'D'+80H
  3232.     DW    FIRST-8
  3233. FLD    DW    DOUSE
  3234.     DW    44H
  3235. ;
  3236.     DB    86H        ;  FORGET
  3237.     DB    'FORGE'
  3238.     DB    'T'+80H
  3239.     DW    FLD-6
  3240. FORG    DW    DOCOL
  3241.     DW    BLL
  3242.     DW    WORDD
  3243.     DW    CURR
  3244.     DW    ATT
  3245.     DW    ATT
  3246.     DW    AFIND
  3247.     DW    ZEQU
  3248.     DW    AABORTQ
  3249.     DB    19H
  3250.     DB    'NOT IN CURRENT VOCABULARY'
  3251.     DW    DROP
  3252.     DW    NFA
  3253.     DW    DUPP
  3254.     DW    FENCE
  3255.     DW    ATT
  3256.     DW    ULESS
  3257.     DW    AABORTQ
  3258.     DB    17H
  3259.     DB    'IN PROTECTED DICTIONARY'
  3260.     DW    TOR
  3261.     DW    RAT
  3262.     DW    CONT
  3263.     DW    ATT
  3264.     DW    ULESS
  3265.     DW    ZBRAN
  3266.     DW    FORG1-$
  3267.     DW    FORTH
  3268. FORG1    DW    RAT
  3269.     DW    CURR
  3270.     DW    ATT
  3271.     DW    ULESS
  3272.     DW    ZBRAN
  3273.     DW    FORG2-$
  3274.     DW    FORTH
  3275.     DW    DEFIN
  3276. FORG2    DW    VOCL
  3277.     DW    ATT
  3278. FORG3    DW    RAT
  3279.     DW    OVER
  3280.     DW    ULESS
  3281.     DW    ZBRAN
  3282.     DW    FORG4-$
  3283.     DW    ATT
  3284.     DW    BRAN
  3285.     DW    FORG3-$
  3286. FORG4    DW    DUPP
  3287.     DW    VOCL
  3288.     DW    STORE
  3289. FORG5    DW    DUPP
  3290.     DW    LIT
  3291.     DW    4
  3292.     DW    SUBB
  3293. FORG6    DW    PFA
  3294.     DW    LFA
  3295.     DW    ATT
  3296.     DW    DUPP
  3297.     DW    RAT    
  3298.     DW    ULESS
  3299.     DW    ZBRAN
  3300.     DW    FORG6-$
  3301.     DW    OVER
  3302.     DW    TWOM
  3303.     DW    STORE
  3304.     DW    ATT
  3305.     DW    QDUP
  3306.     DW    ZEQU
  3307.     DW    ZBRAN
  3308.     DW    FORG5-$
  3309.     DW    FROMR
  3310.     DW    DP
  3311.     DW    STORE
  3312.     DW    EXIT
  3313. ;
  3314.     DB    0C5H        ;  FORTH
  3315.     DB    'FORT'
  3316.     DB    'H'+80H
  3317.     DW    FORG-9
  3318. FORTH    DW    DOVOC
  3319.     DW    0A081H
  3320.     DW    RBRAC-4
  3321.     DW    00
  3322. ;
  3323.     DB    86H        ;  FREEZE
  3324.     DB    'FREEZ'
  3325.     DB    'E'+80H
  3326.     DW    FORTH-8
  3327. FREEZE    DW    DOCOL
  3328.     DW    LIT
  3329.     DW    UP
  3330.     DW    ATT
  3331.     DW    LIT
  3332.     DW    6
  3333.     DW    PLUS
  3334.     DW    LIT
  3335.     DW    INITUSER
  3336.     DW    LIT
  3337.     DW    30H
  3338.     DW    CMOVE
  3339.     DW    LIT
  3340.     DW    FORTH+2
  3341.     DW    TWOP
  3342.     DW    ATT
  3343.     DW    LIT
  3344.     DW    INITFORTH
  3345.     DW    STORE
  3346.     DW    EXIT
  3347. ;
  3348.     DB    84H        ;  HERE
  3349.     DB    'HER'
  3350.     DB    'E'+80H
  3351.     DW    FREEZE-9
  3352. HERE    DW    DOCOL
  3353.     DW    DP
  3354.     DW    ATT
  3355.     DW    EXIT
  3356. ;
  3357.     DB    83H        ;  HEX
  3358.     DB    'HE'
  3359.     DB    'X'+80H
  3360.     DW    HERE-7
  3361. HEX    DW    DOCOL
  3362.     DW    LIT
  3363.     DW    10H
  3364.     DW    BASE
  3365.     DW    STORE
  3366.     DW    EXIT
  3367. ;
  3368.     DB    83H        ;  HLD
  3369.     DB    'HL'
  3370.     DB    'D'+80H
  3371.     DW    HEX-6
  3372. HLD    DW    DOUSE
  3373.     DW    46H
  3374. ;
  3375.     DB    84H        ;  HOLD
  3376.     DB    'HOL'
  3377.     DB    'D'+80H
  3378.     DW    HLD-6
  3379. HOLD    DW    DOCOL
  3380.     DW    LIT
  3381.     DW    0FFFFH
  3382.     DW    HLD
  3383.     DW    PSTOR
  3384.     DW    HLD
  3385.     DW    ATT
  3386.     DW    CSTOR
  3387.     DW    EXIT
  3388. ;
  3389.     DB    81H        ;  I
  3390.     DB    'I'+80H
  3391.     DW    HOLD-7
  3392. IDO    DW    $+2
  3393.     MOV    AX,[BP]
  3394.     JMP    APUSH
  3395. ;
  3396.     DB    82H        ;  I'
  3397.     DB    'I'
  3398.     DB    0A7H
  3399.     DW    IDO-4
  3400. IPDO    DW    $+2
  3401.     MOV    AX,[BP+2]
  3402.     JMP    APUSH
  3403. ;
  3404.     DB    0C2H        ;  IF
  3405.     DB    'I'
  3406.     DB    'F'+80H
  3407.     DW    IPDO-5
  3408. IFF    DW    DOCOL
  3409.     DW    COMP
  3410.     DW    ZBRAN
  3411.     DW    HERE
  3412.     DW    ZERO
  3413.     DW    COMMA
  3414.     DW    TWO
  3415.     DW    EXIT
  3416. ;
  3417.     DB    89H        ;  IMMEDIATE
  3418.     DB    'IMMEDIAT'
  3419.     DB    'E'+80H
  3420.     DW    IFF-5
  3421. IMMED    DW    DOCOL
  3422.     DW    LATES
  3423.     DW    LIT
  3424.     DW    40H
  3425.     DW    TOGGL
  3426.     DW    EXIT
  3427. ;
  3428.     DB    8AH        ;  INIT-FORTH
  3429.     DB    'INIT-FORT'
  3430.     DB    'H'+80H
  3431.     DW    IMMED-0CH
  3432. IFORTH    DW    DOCON
  3433.     DW    INITFORTH
  3434. ;
  3435.     DB    89H        ;  INIT-USER
  3436.     DB    'INIT-USE'
  3437.     DB    'R'+80H
  3438.     DW    IFORTH-0DH
  3439. IUSER    DW    DOCON
  3440.     DW    INITUSER
  3441. ;
  3442.     DB    87H        ;  INTCALL
  3443.     DB    'INTCAL'
  3444.     DB    'L'+80H
  3445.     DW    IUSER-0CH
  3446. INTCAL    DW    DOCOL
  3447.     DW    LIT
  3448.     DW    INTCA2+1
  3449.     DW    CSTOR
  3450.     DW    LIT
  3451.     DW    INTCA1
  3452.     DW    EXEC
  3453.     DW    EXIT
  3454. ;
  3455. INTCA1    DW    $+2
  3456.     POP    DX
  3457.     POP    CX
  3458.     POP    BX
  3459.     POP    AX
  3460.     PUSH    SI
  3461.     PUSH    BP
  3462. INTCA2: INT    0
  3463.     POP    BP
  3464.     POP    SI
  3465.     JMP    APUSH
  3466. ;
  3467.     DB    89H        ;  INTERPRET
  3468.     DB    'INTERPRE'
  3469.     DB    'T'+80H
  3470.     DW    INTCAL-0AH
  3471. INTER    DW    DOCOL
  3472.     DW    TINTER
  3473.     DW    ATT
  3474.     DW    EXEC
  3475.     DW    EXIT
  3476. ;
  3477. ;
  3478.     DB    81H        ;  J
  3479.     DB    'J'+80H
  3480.     DW    INTER-0CH
  3481. JDO    DW    $+2
  3482.     MOV    AX,[BP+4]
  3483.     JMP    APUSH
  3484. ;
  3485.     DB    83H        ;  KEY
  3486.     DB    'KE'
  3487.     DB    'Y'+80H
  3488.     DW    JDO-4
  3489. KEY    DW    DOCOL
  3490.     DW    TKEY
  3491.     DW    ATT
  3492.     DW    EXEC
  3493.     DW    EXIT
  3494. ;
  3495.     DB    86H        ;  LATEST
  3496.     DB    'LATES'
  3497.     DB    'T'+80H
  3498.     DW    KEY-6
  3499. LATES    DW    DOCOL
  3500.     DW    CURR
  3501.     DW    ATT
  3502.     DW    ATT
  3503.     DW    EXIT
  3504. ;
  3505.     DB    85H        ;  LEAVE
  3506.     DB    'LEAV'
  3507.     DB    'E'+80H
  3508.     DW    LATES-9
  3509. LEAVE    DW    $+2
  3510.     MOV    AX,[BP]
  3511.     MOV    2[BP],AX
  3512.     JMP    NEXT
  3513. ;
  3514.     DB    83H        ;  LFA
  3515.     DB    'LF'
  3516.     DB    'A'+80H
  3517.     DW    LEAVE-8
  3518. LFA    DW    DOCOL
  3519.     DW    LIT
  3520.     DW    4
  3521.     DW    SUBB
  3522.     DW    EXIT
  3523. ;
  3524.     DB    85H        ;  LIMIT
  3525.     DB    'LIMI'
  3526.     DB    'T'+80H
  3527.     DW    LFA-6
  3528. LIMIT    DW    DOCON
  3529.     DW    EM
  3530. ;
  3531.     DB    84H        ;  LIST
  3532.     DB    'LIS'
  3533.     DB    'T'+80H
  3534.     DW    LIMIT-8
  3535. LIST    DW    DOCOL
  3536.     DW    CR
  3537.     DW    DUPP
  3538.     DW    SCR
  3539.     DW    STORE
  3540.     DW    ADOTQ
  3541.     DB    5
  3542.     DB    'SCR #'
  3543.     DW    UDOT
  3544.     DW    LIT
  3545.     DW    10H
  3546.     DW    ZERO
  3547.     DW    ADO
  3548. LIST1    DW    CR
  3549.     DW    RAT
  3550.     DW    LIT
  3551.     DW    3
  3552.     DW    DOTR
  3553.     DW    SPACE
  3554.     DW    RAT
  3555.     DW    SCR
  3556.     DW    ATT
  3557.     DW    DLINE
  3558.     DW    QTERM
  3559.     DW    ZBRAN
  3560.     DW    OFFSET LIST2-$
  3561.     DW    LEAVE
  3562. LIST2    DW    ALOOP
  3563.     DW    OFFSET LIST1-$
  3564.     DW    CR
  3565.     DW    EXIT
  3566. ;
  3567.     DB    83H        ;  LIT
  3568.     DB    'LI'
  3569.     DB    'T'+80H
  3570.     DW    LIST-7
  3571. LIT    DW    $+2
  3572.     MOV    AX,[SI]
  3573.     INC    SI
  3574.     INC    SI
  3575.     JMP    APUSH
  3576. ;
  3577.     DB    0C7H        ;  LITERAL
  3578.     DB    'LITERA'
  3579.     DB    'L'+80H
  3580.     DW    LIT-6
  3581. LITER    DW    DOCOL
  3582.     DW    STATE
  3583.     DW    ATT
  3584.     DW    ZBRAN
  3585.     DW    OFFSET LITER1-$
  3586.     DW    COMP
  3587.     DW    LIT
  3588.     DW    COMMA
  3589. LITER1    DW    EXIT
  3590. ;
  3591.     DB    84H        ;  LOAD
  3592.     DB    'LOA'
  3593.     DB    'D'+80H
  3594.     DW    LITER-0AH
  3595. LOAD    DW    DOCOL
  3596.     DW    TLOAD
  3597.     DW    ATT
  3598.     DW    EXEC
  3599.     DW    EXIT
  3600. ;
  3601.     DB    0C4H        ;  LOOP
  3602.     DB    'LOO'
  3603.     DB    'P'+80H
  3604.     DW    LOAD-7
  3605. LOOP    DW    DOCOL
  3606.     DW    LIT
  3607.     DW    3
  3608.     DW    QPAIR
  3609.     DW    COMP
  3610.     DW    ALOOP
  3611.     DW    HERE
  3612.     DW    SUBB
  3613.     DW    COMMA
  3614.     DW    EXIT
  3615. ;
  3616.     DB    82H        ;  M*
  3617.     DB    'M'
  3618.     DB    '*'+80H
  3619.     DW    LOOP-7
  3620. MSTAR    DW    DOCOL
  3621.     DW    DDUP
  3622.     DW    XORR
  3623.     DW    TOR
  3624.     DW    ABSS
  3625.     DW    SWAP
  3626.     DW    ABSS
  3627.     DW    USTAR
  3628.     DW    FROMR
  3629.     DW    DPM
  3630.     DW    EXIT
  3631. ;
  3632.     DB    83H        ;  M*/
  3633.     DB    'M*'
  3634.     DB    '/'+80H
  3635.     DW    MSTAR-5
  3636. MSTARSL DW    DOCOL
  3637.     DW    DDUP
  3638.     DW    XORR
  3639.     DW    SWAP
  3640.     DW    ABSS
  3641.     DW    TOR
  3642.     DW    SWAP
  3643.     DW    ABSS
  3644.     DW    TOR
  3645.     DW    OVER
  3646.     DW    XORR
  3647.     DW    ROT
  3648.     DW    ROT
  3649.     DW    DABS
  3650.     DW    SWAP
  3651.     DW    RAT
  3652.     DW    USTAR
  3653.     DW    ROT
  3654.     DW    FROMR
  3655.     DW    USTAR
  3656.     DW    ROT    
  3657.     DW    ZERO
  3658.     DW    DPLUS
  3659.     DW    RAT
  3660.     DW    USLM
  3661.     DW    ROT
  3662.     DW    ROT
  3663.     DW    FROMR
  3664.     DW    USLM
  3665.     DW    SWAP
  3666.     DW    DROP
  3667.     DW    SWAP
  3668.     DW    ROT
  3669.     DW    DPM
  3670.     DW    EXIT
  3671. ;
  3672.     DB    82H        ;  M+
  3673.     DB    'M'
  3674.     DB    '+'+80H
  3675.     DW    MSTARSL-6
  3676. MPLUS    DW    DOCOL
  3677.     DW    STOD
  3678.     DW    DPLUS
  3679.     DW    EXIT
  3680. ;
  3681.     DB    82H        ;  M/
  3682.     DB    'M'
  3683.     DB    '/'+80H
  3684.     DW    MPLUS-5
  3685. MSLAS    DW    DOCOL
  3686.     DW    OVER
  3687.     DW    TOR
  3688.     DW    TOR
  3689.     DW    DUPP
  3690.     DW    DPM
  3691.     DW    RAT
  3692.     DW    ABSS
  3693.     DW    USLM
  3694.     DW    FROMR
  3695.     DW    RAT
  3696.     DW    XORR
  3697.     DW    PM
  3698.     DW    SWAP
  3699.     DW    FROMR
  3700.     DW    PM
  3701.     DW    SWAP
  3702.     DW    EXIT
  3703. ;
  3704.     DB    85H        ;  M/MOD
  3705.     DB    'M/MO'
  3706.     DB    'D'+80H
  3707.     DW    MSLAS-5
  3708. MSMOD    DW    DOCOL
  3709.     DW    TOR
  3710.     DW    ZERO
  3711.     DW    RAT
  3712.     DW    USLM
  3713.     DW    FROMR
  3714.     DW    SWAP
  3715.     DW    TOR
  3716.     DW    USLM
  3717.     DW    FROMR
  3718.     DW    EXIT
  3719. ;
  3720.     DB    83H        ;  MAX
  3721.     DB    'MA'
  3722.     DB    'X'+80H
  3723.     DW    MSMOD-8
  3724. MAX    DW    DOCOL
  3725.     DW    DDUP
  3726.     DW    LESS
  3727.     DW    ZBRAN
  3728.     DW    OFFSET MAX1-$
  3729.     DW    SWAP
  3730. MAX1    DW    DROP
  3731.     DW    EXIT
  3732. ;
  3733.     DB    87H        ;  MAX-DRV
  3734.     DB    'MAX-DR'
  3735.     DB    'V'+80H
  3736.     DW    MAX-6
  3737. MAXDRV    DW    DOCON
  3738.     DW    2
  3739.     DB    83H        ;  MIN
  3740.     DB    'MI'
  3741.     DB    'N'+80H
  3742.     DW    MAXDRV-0AH
  3743. MIN    DW    DOCOL
  3744.     DW    DDUP
  3745.     DW    GREAT
  3746.     DW    ZBRAN
  3747.     DW    OFFSET MIN1-$
  3748.     DW    SWAP
  3749. MIN1    DW    DROP
  3750.     DW    EXIT
  3751. ;
  3752.     DB    83H        ;  MOD
  3753.     DB    'MO'
  3754.     DB    'D'+80H
  3755.     DW    MIN-6
  3756. MODD    DW    DOCOL
  3757.     DW    SLMOD
  3758.     DW    DROP
  3759.     DW    EXIT
  3760. ;
  3761.     DB    84H        ;  MOVE
  3762.     DB    'MOV'
  3763.     DB    'E'+80H
  3764.     DW    MODD-6
  3765. MOVE    DW    DOCOL
  3766.     DW    ZERO
  3767.     DW    MAX
  3768.     DW    TWOST
  3769.     DW    ACMOVE
  3770.     DW    EXIT
  3771. ;
  3772.     DB    86H        ;  NEGATE
  3773.     DB    'NEGAT'
  3774.     DB    'E'+80H
  3775.     DW    MOVE-7
  3776. NEG    DW    $+2
  3777.     POP    AX
  3778.     NEG    AX
  3779.     JMP    APUSH
  3780. ;
  3781.     DB    84H        ;  NEXT
  3782.     DB    'NEX'
  3783.     DB    'T'+80H
  3784.     DW    NEG-9
  3785. CNEXT    DW    DOCON
  3786.     DW    NEXT
  3787. ;
  3788.     DB    85H        ;  NEXT1
  3789.     DB    'NEXT'
  3790.     DB    '1'+80H
  3791.     DW    CNEXT-7
  3792. CNEXT1    DW    DOCON
  3793.     DW    NEXT1
  3794. ;
  3795.     DB    83H        ;  NFA
  3796.     DB    'NF'
  3797.     DB    'A'+80H
  3798.     DW    CNEXT1-8
  3799. NFA    DW    DOCOL
  3800.     DW    LIT
  3801.     DW    5
  3802.     DW    SUBB
  3803.     DW    LIT
  3804.     DW    0FFFFH
  3805.     DW    TRAV
  3806.     DW    EXIT
  3807. ;
  3808.     DB    83H        ;  NOT
  3809.     DB    'NO'
  3810.     DB    'T'+80H
  3811.     DW    NFA-6
  3812. NOTT    DW    $+2
  3813.     POP    AX
  3814.     OR    AX,AX
  3815.     MOV    AX,1H
  3816.     JZ    NOT1
  3817.     DEC    AX
  3818. NOT1:    JMP    APUSH
  3819. ;
  3820.     DB    86H        ;  NUMBER
  3821.     DB    'NUMBE'
  3822.     DB    'R'+80H
  3823.     DW    NOTT-6
  3824. NUM    DW    DOCOL
  3825.     DW    TNUM
  3826.     DW    ATT
  3827.     DW    EXEC
  3828.     DW    EXIT
  3829. ;
  3830.     DB    86H        ;  OFFSET
  3831.     DB    'OFFSE'
  3832.     DB    'T'+80H
  3833.     DW    NUM-9
  3834. OFSET    DW    DOUSE
  3835.     DW    48H
  3836. ;
  3837.     DB    82H        ;  OR
  3838.     DB    'O'
  3839.     DB    'R'+80H
  3840.     DW    OFSET-9
  3841. ORR    DW    $+2
  3842.     POP    AX
  3843.     POP    BX
  3844.     OR    AX,BX
  3845.     JMP    APUSH
  3846. ;
  3847.     DB    83H        ;  OUT
  3848.     DB    'OU'
  3849.     DB    'T'+80H
  3850.     DW    ORR-5
  3851. OUTT    DW    DOUSE
  3852.     DW    4AH
  3853. ;
  3854.     DB    84H        ;  OVER
  3855.     DB    'OVE'
  3856.     DB    'R'+80H
  3857.     DW    OUTT-6
  3858. OVER    DW    $+2
  3859.     POP    DX
  3860.     POP    AX
  3861.     PUSH    AX
  3862.     JMP    DPUSH
  3863. ;
  3864.     DB    82H        ;  PSTORE
  3865.     DB    'P'
  3866.     DB    '!'+80H
  3867.     DW    OVER-7
  3868. PTSTOR    DW    $+2
  3869.     POP    DX
  3870.     POP    AX
  3871.     OUT    DX,AL
  3872.     JMP    NEXT 
  3873. ;
  3874.     DB    82H        ;  P@
  3875.     DB    'P'
  3876.     DB    '@'+80H
  3877.     DW    PTSTOR-5
  3878. PTAT    DW    $+2
  3879.     POP    DX
  3880.     IN    AL,DX
  3881.     SUB    AH,AH
  3882.     JMP    APUSH
  3883. ;
  3884.     DB    83H        ;  PAD
  3885.     DB    'PA'
  3886.     DB    'D'+80H
  3887.     DW    PTAT-5
  3888. PAD    DW    DOCOL
  3889.     DW    HERE
  3890.     DW    LIT
  3891.     DW    44H
  3892.     DW    PLUS
  3893.     DW    EXIT
  3894. ;
  3895.     DB    84H        ;  PAGE
  3896.     DB    'PAG'
  3897.     DB    'E'+80H
  3898.     DW    PAD-6
  3899. PAGEE    DW    DOCOL
  3900.     DW    TPAGE
  3901.     DW    ATT
  3902.     DW    EXEC
  3903.     DW    EXIT
  3904. ;
  3905.     DB    83H        ;  PFA
  3906.     DB    'PF'
  3907.     DB    'A'+80H
  3908.     DW    PAGEE-7
  3909. PFA    DW    DOCOL
  3910.     DW    ONE
  3911.     DW    TRAV
  3912.     DW    LIT
  3913.     DW    5
  3914.     DW    PLUS
  3915.     DW    EXIT
  3916. ;
  3917.     DB    84H        ;  PICK
  3918.     DB    'PIC'
  3919.     DB    'K'+80H
  3920.     DW    PFA-6
  3921. PICK    DW    DOCOL
  3922.     DW    DUPP
  3923.     DW    ONE
  3924.     DW    LESS
  3925.     DW    AABORTQ
  3926.     DB    11H
  3927.     DB    'PICK ARGUMENT < 1'
  3928.     DW    TWOST
  3929.     DW    SPAT
  3930.     DW    PLUS
  3931.     DW    ATT
  3932.     DW    EXIT
  3933. ;
  3934.     DB    82H        ;  PP
  3935.     DB    'P'
  3936.     DB    'P'+80H
  3937.     DW    PICK-7
  3938. PP    DW    DOCOL
  3939.     DW    DUPP
  3940.     DW    LIT
  3941.     DW    0FFF0H
  3942.     DW    ANDD
  3943.     DW    AABORTQ
  3944.     DB    0AH
  3945.     DB    'OFF SCREEN'
  3946.     DW    ONE
  3947.     DW    TEXT
  3948.     DW    PAD
  3949.     DW    ONEP
  3950.     DW    SWAP
  3951.     DW    SCR
  3952.     DW    ATT
  3953.     DW    ALINE
  3954.     DW    CMOVE
  3955.     DW    UPDAT
  3956.     DW    EXIT
  3957. ;
  3958.     DB    84H        ;  PREV
  3959.     DB    'PRE'
  3960.     DB    'V'+80H
  3961.     DW    PP-5
  3962. PREV    DW    DOVAR
  3963.     DW    BUF1
  3964. ;
  3965.     DB    83H        ; PWSTORE
  3966.     DB    'PW'
  3967.     DB    '!'+80H
  3968.     DW    PREV-7
  3969. PWSTOR    DW    $+2
  3970.     POP    DX
  3971.     POP    AX
  3972.     OUT    DX,AX
  3973.     JMP    NEXT
  3974. ;
  3975.     DB    83H        ; PW@ 
  3976.     DB    'PW'
  3977.     DB    '@'+80H
  3978.     DW    PWSTOR-6
  3979. PWAT    DW    $+2
  3980.     POP    DX
  3981.     IN    AX,DX
  3982.     JMP    APUSH
  3983. ;
  3984.     DB    85H        ;  QUERY
  3985.     DB    'QUER'
  3986.     DB    'Y'+80H
  3987.     DW    PWAT-6
  3988. QUERY    DW    DOCOL
  3989.     DW    TIB
  3990.     DW    ATT
  3991.     DW    LIT
  3992.     DW    50H
  3993.     DW    EXPEC
  3994.     DW    ZERO
  3995.     DW    TOIN
  3996.     DW    STORE
  3997.     DW    EXIT
  3998. ;
  3999.     DB    84H        ;  QUIT
  4000.     DB    'QUI'
  4001.     DB    'T'+80H
  4002.     DW    QUERY-8
  4003. QUIT    DW    DOCOL
  4004.     DW    ZERO
  4005.     DW    BLK
  4006.     DW    STORE
  4007.     DW    LBRAC
  4008. QUIT1    DW    CR
  4009.     DW    RPSTO
  4010.     DW    QUERY
  4011.     DW    INTER
  4012.     DW    STATE
  4013.     DW    ATT
  4014.     DW    NOTT
  4015.     DW    ZBRAN
  4016.     DW    OFFSET QUIT2-$
  4017.     DW    ADOTQ
  4018.     DB    2
  4019.     DB    'OK'
  4020. QUIT2    DW    BRAN
  4021.     DW    QUIT1-$
  4022.     DW    EXIT
  4023. ;
  4024.     DB    82H        ;  R#
  4025.     DB    'R'
  4026.     DB    '#'+80H
  4027.     DW    QUIT-7
  4028. RSHARP    DW    DOUSE
  4029.     DW    4CH
  4030. ;
  4031.     DB    83H        ;  R/W
  4032.     DB    'R/'
  4033.     DB    'W'+80H
  4034.     DW    RSHARP-5
  4035. RSLW    DW    DOCOL
  4036.     DW    TRSLW
  4037.     DW    ATT
  4038.     DW    EXEC
  4039.     DW    EXIT
  4040. ;
  4041.     DB    82H        ;  R0
  4042.     DB    'R'
  4043.     DB    '0'+80H
  4044.     DW    RSLW-6
  4045. RZERO    DW    DOUSE
  4046.     DW    08
  4047. ;
  4048.     DB    82H        ;  R>
  4049.     DB    'R'
  4050.     DB    '>'+80H
  4051.     DW    RZERO-5
  4052. FROMR    DW    $+2
  4053.     MOV    AX,[BP]
  4054.     INC    BP
  4055.     INC    BP
  4056.     JMP    APUSH
  4057. ;
  4058.     DB    82H        ;  R@
  4059.     DB    'R'
  4060.     DB    '@'+80H
  4061.     DW    FROMR-5
  4062. RAT    DW    $+2
  4063.     MOV    AX,[BP]
  4064.     JMP    APUSH
  4065. ;
  4066.     DB    0C6H        ;  REPEAT
  4067.     DB    'REPEA'
  4068.     DB    'T'+80H
  4069.     DW    RAT-5
  4070. REPEA    DW    DOCOL
  4071.     DW    TOR
  4072.     DW    TOR
  4073.     DW    AGAIN
  4074.     DW    FROMR
  4075.     DW    FROMR
  4076.     DW    TWOM
  4077.     DW    THENN
  4078.     DW    EXIT
  4079. ;
  4080.     DB    84H        ;  ROLL
  4081.     DB    'ROL'
  4082.     DB    'L'+80H
  4083.     DW    REPEA-9
  4084. ROLL    DW    DOCOL
  4085.     DW    DUPP
  4086.     DW    ONE
  4087.     DW    LESS
  4088.     DW    AABORTQ
  4089.     DB    11H
  4090.     DB    'ROLL ARGUMENT < 1'
  4091.     DW    ONEP
  4092.     DW    DUPP
  4093.     DW    PICK
  4094.     DW    SWAP
  4095.     DW    TWOST
  4096.     DW    SPAT
  4097.     DW    PLUS
  4098. ROLL1    DW    DUPP
  4099.     DW    TWOM
  4100.     DW    ATT
  4101.     DW    OVER
  4102.     DW    STORE
  4103.     DW    TWOM
  4104.     DW    SPAT
  4105.     DW    OVER
  4106.     DW    ULESS
  4107.     DW    NOTT
  4108.     DW    ZBRAN
  4109.     DW    ROLL1-$
  4110.     DW    DDROP
  4111.     DW    EXIT
  4112. ;
  4113.     DB    83H        ;  ROT
  4114.     DB    'RO'
  4115.     DB    'T'+80H
  4116.     DW    ROLL-7
  4117. ROT    DW    $+2
  4118.     POP    DX
  4119.     POP    BX
  4120.     POP    AX
  4121.     PUSH    BX
  4122.     JMP    DPUSH
  4123. ;
  4124.     DB    83H        ;  RPSTORE
  4125.     DB    'RP'
  4126.     DB    '!'+80H
  4127.     DW    ROT-6
  4128. RPSTO    DW    $+2
  4129.     MOV    BX,UP
  4130.     MOV    BP,8[BX]
  4131.     JMP    NEXT
  4132. ;
  4133.     DB    83H        ;  RP@
  4134.     DB    'RP'
  4135.     DB    '@'+80H
  4136.     DW    RPSTO-6
  4137. RPAT    DW    $+2
  4138.     MOV    AX,BP
  4139.     JMP    APUSH
  4140. ;
  4141.     DB    83H        ;  RPP
  4142.     DB    'RP'
  4143.     DB    'P'+80H
  4144.     DW    RPAT-6
  4145. RPPP    DW    DOCON
  4146.     DW    RPP
  4147. ;
  4148.     DB    84H        ;  S->D
  4149.     DB    'S->'
  4150.     DB    'D'+80H
  4151.     DW    RPPP-6
  4152. STOD    DW    $+2
  4153.     POP    DX
  4154.     SUB    AX,AX
  4155.     OR    DX,DX
  4156.     JNS    STOD1
  4157.     DEC    AX
  4158. STOD1:    JMP    DPUSH
  4159. ;
  4160.     DB    82H        ;  S0
  4161.     DB    'S'
  4162.     DB    '0'+80H
  4163.     DW    STOD-7
  4164. SZERO    DW    DOCOL
  4165.     DW    SPZERO
  4166.     DW    ATT
  4167.     DW    EXIT
  4168. ;
  4169.     DB    8CH        ;  SAVE-BUFFERS
  4170.     DB    'SAVE-BUFFER'
  4171.     DB    'S'+80H
  4172.     DW    SZERO-5
  4173. SAVBUF    DW    DOCOL
  4174.     DW    NOBUF
  4175.     DW    ONEP
  4176.     DW    ZERO
  4177.     DW    ADO
  4178. SAVBUF1 DW    LIT
  4179.     DW    7FFFH
  4180.     DW    BUFFE
  4181.     DW    DROP
  4182.     DW    ALOOP
  4183.     DW    OFFSET SAVBUF1-$
  4184.     DW    EXIT
  4185. ;
  4186.     DB    83H        ;  SCR
  4187.     DB    'SC'
  4188.     DB    'R'+80H
  4189.     DW    SAVBUF-0FH
  4190. SCR    DW    DOUSE
  4191.     DW    4EH
  4192. ;
  4193.     DB    83H        ;  SEC    
  4194.     DB    'SE'
  4195.     DB    'C'+80H
  4196.     DW    SCR-6
  4197. SEC    DW    DOVAR
  4198.     DW    0
  4199. ;
  4200.     DB    88H        ;  SEC-READ
  4201.     DB    'SEC-REA'
  4202.     DB    'D'+80H
  4203.     DW    SEC-6
  4204. SECRD    DW    DOCOL
  4205.     DW    LIT
  4206.     DW    201H
  4207.     DW    LIT
  4208.     DW    SECRW
  4209.     DW    EXEC
  4210.     DW    EXIT
  4211. ;
  4212. SECRW    DW    DOCOL
  4213.     DW    LIT
  4214.     DW    3
  4215.     DW    ZERO
  4216.     DW    ADO
  4217. SECRW1    DW    DUPP
  4218.     DW    USEE
  4219.     DW    ATT
  4220.     DW    TRACK
  4221.     DW    ATT
  4222.     DW    LIT
  4223.     DW    100H
  4224.     DW    STAR
  4225.     DW    SEC
  4226.     DW    ATT
  4227.     DW    PLUS
  4228.     DW    DRIVE
  4229.     DW    ATT
  4230.     DW    LIT
  4231.     DW    13H
  4232.     DW    INTCAL
  4233.     DW    DUPP
  4234.     DW    DSKERR
  4235.     DW    STORE
  4236.     DW    ZEQU
  4237.     DW    ZBRAN
  4238.     DW    OFFSET SECRW2-$
  4239.     DW    LEAVE
  4240.     DW    BRAN
  4241.     DW    OFFSET SECRW3-$
  4242. SECRW2    DW    ZERO
  4243.     DW    ZERO
  4244.     DW    ZERO
  4245.     DW    ZERO
  4246.     DW    LIT
  4247.     DW    13H
  4248.     DW    INTCAL
  4249.     DW    DROP
  4250. SECRW3    DW    ALOOP
  4251.     DW    OFFSET SECRW1-$
  4252.     DW    DROP
  4253.     DW    EXIT 
  4254. ;
  4255.     DB    89H        ;  SEC-WRITE
  4256.     DB    'SEC-WRIT'
  4257.     DB    'E'+80H
  4258.     DW    SECRD-0BH
  4259. SECWT    DW    DOCOL
  4260.     DW    LIT
  4261.     DW    301H
  4262.     DW    LIT
  4263.     DW    SECRW
  4264.     DW    EXEC
  4265.     DW    EXIT
  4266. ;
  4267.     DB    87H        ;  SEC/BLK
  4268.     DB    'SEC/BL'
  4269.     DB    'K'+80H
  4270.     DW    SECWT-0CH
  4271. SPBL    DW    DOVAR
  4272.     DW    2
  4273.     DW    2
  4274.     DW    8
  4275.     DW    8
  4276.     DW    8
  4277.     DW    8
  4278.     DW    8
  4279. ;
  4280.     DB    86H        ;  SEC/TR
  4281.     DB    'SEC/T'
  4282.     DB    'R'+80H
  4283.     DW    SPBL-0AH
  4284. SPTR    DW    DOVAR
  4285.     DW    8H
  4286.     DW    10H
  4287.     DW    1AH
  4288.     DW    34H
  4289.     DW    34H
  4290.     DW    40H
  4291.     DW    40H
  4292. ;
  4293.     DB    87H        ;  SET-DRX
  4294.     DB    'SET-DR'
  4295.     DB    'X'+80H
  4296.     DW    SPTR-9H
  4297. SETDRX    DW    DOCOL
  4298.     DW    DRDEN
  4299.     DW    DENSTY
  4300.     DW    STORE
  4301.     DW    BPDRV
  4302.     DW    OFSET
  4303.     DW    PSTOR
  4304.     DW    EXIT
  4305. ;
  4306.     DB    84H        ;  SIGN
  4307.     DB    'SIG'
  4308.     DB    'N'+80H
  4309.     DW    SETDRX-0AH
  4310. SIGN    DW    DOCOL
  4311.     DW    ZLESS
  4312.     DW    ZBRAN
  4313.     DW    OFFSET SIGN1-$
  4314.     DW    LIT
  4315.     DW    2DH
  4316.     DW    HOLD    
  4317. SIGN1    DW    EXIT
  4318. ;
  4319.     DB    86H        ;  SMUDGE
  4320.     DB    'SMUDG'
  4321.     DB    'E'+80H
  4322.     DW    SIGN-7
  4323. SMUDG    DW    DOCOL
  4324.     DW    LATES
  4325.     DW    LIT
  4326.     DW    20H
  4327.     DW    TOGGL
  4328.     DW    EXIT
  4329. ;
  4330.     DB    83H        ;  SPSTORE
  4331.     DB    'SP'
  4332.     DB    '!'+80H 
  4333.     DW    SMUDG-9
  4334. SPSTO    DW    $+2
  4335.     MOV    BX,UP
  4336.     MOV    SP,6[BX]
  4337.     JMP    NEXT
  4338. ;
  4339.     DB    83H        ;  SP0
  4340.     DB    'SP'
  4341.     DB    '0'+80H
  4342.     DW    SPSTO-6
  4343. SPZERO    DW    DOUSE
  4344.     DW    06
  4345. ;
  4346.     DB    83H        ;  SP@
  4347.     DB    'SP'
  4348.     DB    '@'+80H
  4349.     DW    SPZERO-6
  4350. SPAT    DW    $+2
  4351.     MOV    AX,SP
  4352.     JMP    APUSH
  4353. ;
  4354.     DB    85H        ;  SPACE
  4355.     DB    'SPAC'
  4356.     DB    'E'+80H
  4357.     DW    SPAT-6
  4358. SPACE    DW    DOCOL
  4359.     DW    BLL
  4360.     DW    EMIT
  4361.     DW    EXIT
  4362. ;
  4363.     DB    86H        ;  SPACES
  4364.     DB    'SPACE'
  4365.     DB    'S'+80H
  4366.     DW    SPACE-8
  4367. SPACS    DW    DOCOL
  4368.     DW    ZERO
  4369.     DW    MAX
  4370.     DW    QDUP
  4371.     DW    ZBRAN
  4372.     DW    OFFSET SPACS2-$
  4373.     DW    ZERO
  4374.     DW    ADO
  4375. SPACS1    DW    SPACE
  4376.     DW    ALOOP
  4377.     DW    OFFSET SPACS1-$
  4378. SPACS2    DW    EXIT
  4379. ;
  4380.     DB    85H        ;  SPBLK
  4381.     DB    'SPBL'
  4382.     DB    'K'+80H
  4383.     DW    SPACS-9
  4384. SPBLK    DW    DOCOL
  4385.     DW    DENSTY
  4386.     DW    ATT
  4387.     DW    LIT
  4388.     DW    6
  4389.     DW    MIN
  4390.     DW    TWOST
  4391.     DW    SPBL
  4392.     DW    PLUS
  4393.     DW    ATT
  4394.     DW    EXIT
  4395. ;
  4396.     DB    85H        ;  SPDRV
  4397.     DB    'SPDR'
  4398.     DB    'V'+80H
  4399.     DW    SPBLK-8
  4400. SPDRV    DW    DOCOL
  4401.     DW    BPDRV
  4402.     DW    SPBLK
  4403.     DW    STAR
  4404.     DW    EXIT
  4405. ;
  4406.     DB    83H        ;  SPT
  4407.     DB    'SP'
  4408.     DB    'T'+80H
  4409.     DW    SPDRV-8
  4410. SPT    DW    DOCOL
  4411.     DW    DENSTY
  4412.     DW    ATT
  4413.     DW    LIT
  4414.     DW    6
  4415.     DW    MIN
  4416.     DW    TWOST
  4417.     DW    SPTR
  4418.     DW    PLUS
  4419.     DW    ATT
  4420.     DW    EXIT
  4421. ;
  4422.     DB    85H        ;  STATE
  4423.     DB    'STAT'
  4424.     DB    'E'+80H
  4425.     DW    SPT-6
  4426. STATE    DW    DOUSE
  4427.     DW    50H
  4428. ;
  4429.     DB    84H        ;  SWAP
  4430.     DB    'SWA'
  4431.     DB    'P'+80H
  4432.     DW    STATE-8
  4433. SWAP    DW    $+2
  4434.     POP    DX
  4435.     POP    AX
  4436.     JMP    DPUSH
  4437. ;
  4438.     DB    87H        ;  SYSCALL
  4439.     DB    'SYSCAL'
  4440.     DB    'L'+80H
  4441.     DW    SWAP-7
  4442. SYSCALL DW    DOCOL
  4443.     DW    SWAP
  4444.     DW    LIT
  4445.     DW    100H
  4446.     DW    STAR
  4447.     DW    SWAP
  4448.     DW    ZERO
  4449.     DW    ZERO
  4450.     DW    ROT
  4451.     DW    LIT
  4452.     DW    21H
  4453.     DW    INTCAL
  4454.     DW    EXIT
  4455. ;
  4456.     DB    87H        ;  T&SCALC
  4457.     DB    'T&SCAL'
  4458.     DB    'C'+80H
  4459.     DW    SYSCALL-0AH
  4460. TSCALC    DW    DOCOL
  4461.     DW    TTSCALC
  4462.     DW    ATT
  4463.     DW    EXEC
  4464.     DW    EXIT
  4465. ;
  4466.     DB    84H        ;  TEXT
  4467.     DB    'TEX'
  4468.     DB    'T'+80H
  4469.     DW    TSCALC-0AH
  4470. TEXT    DW    DOCOL
  4471.     DW    HERE
  4472.     DW    CSLL
  4473.     DW    ONEP
  4474.     DW    BLANK
  4475.     DW    WORDD
  4476.     DW    BLL     
  4477.     DW    OVER
  4478.     DW    DUPP
  4479.     DW    CAT
  4480.     DW    PLUS
  4481.     DW    ONEP
  4482.     DW    CSTOR
  4483.     DW    PAD
  4484.     DW    CSLL
  4485.     DW    ONEP
  4486.     DW    CMOVE
  4487.     DW    EXIT
  4488. ;
  4489.     DB    0C4H        ;  THEN
  4490.     DB    'THE'
  4491.     DB    'N'+80H
  4492.     DW    TEXT-7
  4493. THENN    DW    DOCOL
  4494.     DW    QCOMP
  4495.     DW    TWO
  4496.     DW    QPAIR
  4497.     DW    HERE
  4498.     DW    OVER
  4499.     DW    SUBB
  4500.     DW    SWAP
  4501.     DW    STORE
  4502.     DW    EXIT
  4503. ;
  4504.     DB    83H        ;  TIB
  4505.     DB    'TI'    
  4506.     DB    'B'+80H
  4507.     DW    THENN-7
  4508. TIB    DW    DOUSE
  4509.     DW    0AH
  4510. ;
  4511.     DB    86H        ;  TOGGLE
  4512.     DB    'TOGGL'
  4513.     DB    'E'+80H
  4514.     DW    TIB-6
  4515. TOGGL    DW    $+2
  4516.     POP    AX
  4517.     POP    BX
  4518.     XOR    [BX],AL
  4519.     JMP    NEXT
  4520. ;
  4521.     DB    85H        ;  TRACK
  4522.     DB    'TRAC'
  4523.     DB    'K'+80H
  4524.     DW    TOGGL-9
  4525. TRACK    DW    DOVAR
  4526.     DW    0
  4527. ;
  4528.     DB    88H        ;  TRAVERSE
  4529.     DB    'TRAVERS'
  4530.     DB    'E'+80H
  4531.     DW    TRACK-8
  4532. TRAV    DW    DOCOL
  4533.     DW    SWAP
  4534. TRAV1    DW    OVER
  4535.     DW    PLUS
  4536.     DW    LIT
  4537.     DW    07FH
  4538.     DW    OVER
  4539.     DW    CAT
  4540.     DW    LESS
  4541.     DW    ZBRAN
  4542.     DW    OFFSET TRAV1-$
  4543.     DW    SWAP
  4544.     DW    DROP
  4545.     DW    EXIT
  4546. ;
  4547.     DB    84H        ;  TYPE
  4548.     DB    'TYP'
  4549.     DB    'E'+80H
  4550.     DW    TRAV-0BH
  4551. TYPEE    DW    DOCOL
  4552.     DW    DUPP
  4553.     DW    ZGREAT
  4554.     DW    ZBRAN
  4555.     DW    OFFSET TYPE2-$
  4556.     DW    OVER
  4557.     DW    PLUS
  4558.     DW    SWAP
  4559.     DW    ADO
  4560. TYPE1    DW    IDO
  4561.     DW    CAT
  4562.     DW    EMIT
  4563.     DW    ONE
  4564.     DW    AUPLOOP
  4565.     DW    OFFSET TYPE1-$
  4566.     DW    BRAN
  4567.     DW    OFFSET TYPE3-$
  4568. TYPE2    DW    DDROP
  4569. TYPE3    DW    EXIT
  4570. ;
  4571.     DB    82H        ;  U*
  4572.     DB    'U'
  4573.     DB    '*'+80H
  4574.     DW    TYPEE-7
  4575. USTAR    DW    $+2
  4576.     POP    AX
  4577.     POP    BX
  4578.     MUL    BX
  4579.     XCHG    AX,DX
  4580.     JMP    DPUSH
  4581. ;
  4582.     DB    82H        ;  U.
  4583.     DB    'U'
  4584.     DB    '.'+80H
  4585.     DW    USTAR-5
  4586. UDOT    DW    DOCOL
  4587.     DW    ZERO
  4588.     DW    DDOT
  4589.     DW    EXIT
  4590. ;
  4591.     DB    85H        ;  U/MOD
  4592.     DB    'U/MO'
  4593.     DB    'D'+80H
  4594.     DW    UDOT-5
  4595. USLM    DW    $+2
  4596.     POP    BX
  4597.     POP    DX
  4598.     POP    AX
  4599.     DIV    BX
  4600.     JMP    DPUSH
  4601. ;
  4602.     DB    82H        ;  U<
  4603.     DB    'U'
  4604.     DB    '<'+80H
  4605.     DW    USLM-8
  4606. ULESS    DW    DOCOL
  4607.     DW    ZERO
  4608.     DW    SWAP
  4609.     DW    ZERO
  4610.     DW    DLESS
  4611.     DW    EXIT
  4612. ;
  4613.     DB    0C5H        ;  UNTIL
  4614.     DB    'UNTI'
  4615.     DB    'L'+80H
  4616.     DW    ULESS-5
  4617. UNTIL    DW    DOCOL
  4618.     DW    ONE
  4619.     DW    QPAIR
  4620.     DW    COMP
  4621.     DW    ZBRAN
  4622.     DW    HERE
  4623.     DW    SUBB
  4624.     DW    COMMA
  4625.     DW    EXIT
  4626. ;
  4627.     DB    82H        ;  UP
  4628.     DB    'U'
  4629.     DB    'P'+80H
  4630.     DW    UNTIL-8
  4631. UPP    DW    DOCON
  4632.     DW    UP
  4633. ;
  4634.     DB    86H        ;  UPDATE
  4635.     DB    'UPDAT'
  4636.     DB    'E'+80H
  4637.     DW    UPP-5
  4638. UPDAT    DW    DOCOL
  4639.     DW    PREV
  4640.     DW    ATT
  4641.     DW    ATT
  4642.     DW    LIT
  4643.     DW    8000H
  4644.     DW    ORR
  4645.     DW    PREV
  4646.     DW    ATT
  4647.     DW    STORE
  4648.     DW    EXIT
  4649. ;    
  4650.     DB    83H        ;  USE
  4651.     DB    'US'
  4652.     DB    'E'+80H
  4653.     DW    UPDAT-9
  4654. USEE    DW    DOVAR
  4655.     DW    BUF1
  4656. ;
  4657.     DB    84H        ;  USER
  4658.     DB    'USE'
  4659.     DB    'R'+80H
  4660.     DW    USEE-6
  4661. USER    DW    DOCOL
  4662.     DW    CON
  4663.     DW    ASCODE
  4664. DOUSE:    INC    DX
  4665.     MOV    BX,DX
  4666.     MOV    BL,[BX]
  4667.     SUB    BH,BH
  4668.     MOV    DI,UP
  4669.     LEA    AX,[BX+DI]
  4670.     JMP    APUSH
  4671. ;
  4672.     DB    88H        ;  VARIABLE
  4673.     DB    'VARIABL'
  4674.     DB    'E'+80H
  4675.     DW    USER-7
  4676. VAR    DW    DOCOL    
  4677.     DW    CREATE
  4678.     DW    TWO
  4679.     DW    ALLOT
  4680.     DW    EXIT
  4681. ;
  4682.     DB    88H        ;  VOC-LINK
  4683.     DB    'VOC-LIN'
  4684.     DB    'K'+80H
  4685.     DW    VAR-0BH
  4686. VOCL    DW    DOUSE
  4687.     DW    14H
  4688. ;
  4689.     DB    8AH        ;  VOCABULARY
  4690.     DB    'VOCABULAR'
  4691.     DB    'Y'+80H
  4692.     DW    VOCL-0BH
  4693. VOC    DW    DOCOL
  4694.     DW    TVOCAB
  4695.     DW    ATT
  4696.     DW    EXEC
  4697.     DW    EXIT
  4698. ;
  4699.     DB    87H        ;  WARNING
  4700.     DB    'WARNIN'
  4701.     DB    'G'+80H
  4702.     DW    VOC-0DH
  4703. WARN    DW    DOUSE
  4704.     DW    0EH
  4705. ;
  4706.     DB    85H        ;  WHERE
  4707.     DB    'WHER'
  4708.     DB    'E'+80H
  4709.     DW    WARN-0AH
  4710. WHERE    DW    DOCOL
  4711.     DW    BLK
  4712.     DW    ATT
  4713.     DW    ZBRAN
  4714.     DW    WHERE1-$
  4715.     DW    BLK
  4716.     DW    ATT
  4717.     DW    DUPP
  4718.     DW    SCR
  4719.     DW    STORE
  4720.     DW    CR
  4721.     DW    CR
  4722.     DW    ADOTQ
  4723.     DB    5
  4724.     DB    'SCR# '
  4725.     DW    DUPP
  4726.     DW    DOT
  4727.     DW    TOIN
  4728.     DW    ATT
  4729.     DW    LIT
  4730.     DW    3FFH
  4731.     DW    MIN
  4732.     DW    CSLL
  4733.     DW    SLMOD
  4734.     DW    DUPP
  4735.     DW    ADOTQ
  4736.     DB    6
  4737.     DB    'LINE# '
  4738.     DW    DOT
  4739.     DW    CSLL
  4740.     DW    STAR
  4741.     DW    ROT
  4742.     DW    BLOCK
  4743.     DW    PLUS
  4744.     DW    CR
  4745.     DW    CR
  4746.     DW    CSLL
  4747.     DW    DTRAI
  4748.     DW    TYPEE
  4749.     DW    TOIN
  4750.     DW    ATT
  4751.     DW    LIT
  4752.     DW    3FFH
  4753.     DW    GREAT
  4754.     DW    PLUS
  4755.     DW    BRAN
  4756.     DW    WHERE2-$
  4757. WHERE1    DW    TOIN
  4758.     DW    ATT
  4759. WHERE2    DW    CR
  4760.     DW    HERE
  4761.     DW    CAT
  4762.     DW    DUPP
  4763.     DW    TOR
  4764.     DW    SUBB
  4765.     DW    HERE
  4766.     DW    RAT
  4767.     DW    PLUS
  4768.     DW    ONEP
  4769.     DW    CAT
  4770.     DW    LIT
  4771.     DW    20H
  4772.     DW    EQUAL
  4773.     DW    ZBRAN
  4774.     DW    WHERE3-$
  4775.     DW    ONEM
  4776. WHERE3    DW    SPACS
  4777.     DW    FROMR
  4778.     DW    ZERO
  4779.     DW    ADO
  4780. WHERE4    DW    LIT
  4781.     DW    5EH
  4782.     DW    EMIT
  4783.     DW    ALOOP
  4784.     DW    WHERE4-$
  4785.     DW    EXIT
  4786. ;
  4787.     DB    0C5H        ;  WHILE
  4788.     DB    'WHIL'
  4789.     DB    'E'+80H
  4790.     DW    WHERE-8
  4791. WHILE    DW    DOCOL
  4792.     DW    IFF
  4793.     DW    TWOP
  4794.     DW    EXIT
  4795. ;
  4796.     DB    85H        ;  WIDTH
  4797.     DB    'WIDT'
  4798.     DB    'H'+80H
  4799.     DW    WHILE-8
  4800. WIDTHH    DW    DOUSE
  4801.     DW    0CH
  4802. ;
  4803.     DB    84H        ;  WORD
  4804.     DB    'WOR'
  4805.     DB    'D'+80H
  4806.     DW    WIDTHH-8
  4807. WORDD    DW    DOCOL
  4808.     DW    TWORD
  4809.     DW    ATT
  4810.     DW    EXEC
  4811.     DW    EXIT
  4812. ;
  4813.     DB    0C0H        ;  X   (NULL)
  4814.     DB    80H
  4815.     DW    WORDD-7
  4816. NULL    DW    DOCOL
  4817.     DW    BLK
  4818.     DW    ATT
  4819.     DW    ZBRAN
  4820.     DW    OFFSET NULL1-$
  4821.     DW    STATE
  4822.     DW    ATT
  4823.     DW    QSTREAM
  4824. NULL1    DW    FROMR
  4825.     DW    DROP
  4826.     DW    EXIT
  4827. ;
  4828.     DB    83H        ;  XOR
  4829.     DB    'XO'
  4830.     DB    'R'+80H
  4831.     DW    NULL-4
  4832. XORR    DW    $+2
  4833.     POP    AX
  4834.     POP    BX
  4835.     XOR    AX,BX
  4836.     JMP    APUSH
  4837. ;
  4838.     DB    0C1H        ;  [
  4839.     DB    '['+80H
  4840.     DW    XORR-6
  4841. LBRAC    DW    DOCOL
  4842.     DW    ZERO
  4843.     DW    STATE
  4844.     DW    STORE
  4845.     DW    EXIT
  4846. ;
  4847.     DB    0C9H        ;  [COMPILE]
  4848.     DB    '[COMPILE'
  4849.     DB    ']'+80H
  4850.     DW    LBRAC-4
  4851. BCOMP    DW    DOCOL
  4852.     DW    QCOMP
  4853.     DW    DFIND
  4854.     DW    NOTT
  4855.     DW    AABORTQ
  4856.     DB    9
  4857.     DB    'NOT FOUND'
  4858.     DW    DROP
  4859.     DW    CFA
  4860.     DW    COMMA
  4861.     DW    EXIT
  4862. ;
  4863.     DB    81H        ;  ]
  4864.     DB    ']'+80H
  4865.     DW    BCOMP-0CH
  4866. RBRAC    DW    DOCOL
  4867.     DW    LIT
  4868.     DW    0C0H
  4869.     DW    STATE
  4870.     DW    STORE
  4871.     DW    EXIT
  4872. ;
  4873.     FSEG    ENDS
  4874. ;
  4875.     END    ORIG
  4876. ;
  4877.